summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/environs/py_logout.c26
-rw-r--r--python/lasso.py28
2 files changed, 31 insertions, 23 deletions
diff --git a/python/environs/py_logout.c b/python/environs/py_logout.c
index f2aef5a1..0146c844 100644
--- a/python/environs/py_logout.c
+++ b/python/environs/py_logout.c
@@ -25,6 +25,8 @@
#include "../lassomod.h"
+#include "../xml/py_xml.h"
+
#include "py_logout.h"
PyObject *LassoLogout_wrap(LassoLogout *logout) {
@@ -57,16 +59,20 @@ PyObject *logout_getattr(PyObject *self, PyObject *args) {
if (!strcmp(attr, "__members__"))
return Py_BuildValue("[ssss]", "user", "msg_url", "msg_body",
"nameIdentifier", "msg_relayState");
- if (!strcmp(attr, "user"))
- return (LassoUser_wrap(LASSO_PROFILE_CONTEXT(logout)->user));
if (!strcmp(attr, "msg_url"))
return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(logout)->msg_url));
if (!strcmp(attr, "msg_body"))
return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(logout)->msg_body));
- if (!strcmp(attr, "nameIdentifier"))
- return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(logout)->nameIdentifier));
if (!strcmp(attr, "msg_relayState"))
return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(logout)->msg_relayState));
+ if (!strcmp(attr, "nameIdentifier"))
+ return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(logout)->nameIdentifier));
+ if (!strcmp(attr, "request"))
+ return (LassoNode_wrap(LASSO_PROFILE_CONTEXT(logout)->request));
+ if (!strcmp(attr, "response"))
+ return (LassoNode_wrap(LASSO_PROFILE_CONTEXT(logout)->response));
+ if (!strcmp(attr, "user"))
+ return (LassoUser_wrap(LASSO_PROFILE_CONTEXT(logout)->user));
Py_INCREF(Py_None);
return (Py_None);
@@ -75,19 +81,17 @@ PyObject *logout_getattr(PyObject *self, PyObject *args) {
PyObject *logout_new(PyObject *self, PyObject *args) {
gint provider_type;
- PyObject *server_obj, *user_obj;
+ PyObject *server_obj;
LassoLogout *logout;
- if (CheckArgs(args, "IOo:logout_new")) {
- if(!PyArg_ParseTuple(args, (char *) "IO|O:logout_new",
- &provider_type, &server_obj, &user_obj))
+ if (CheckArgs(args, "OI:logout_new")) {
+ if(!PyArg_ParseTuple(args, (char *) "Oi:logout_new",
+ &server_obj, &provider_type))
return NULL;
}
else return NULL;
- logout = lasso_logout_new(provider_type,
- LassoServer_get(server_obj),
- LassoUser_get(user_obj));
+ logout = lasso_logout_new(LassoServer_get(server_obj), provider_type);
return (LassoLogout_wrap(logout));
}
diff --git a/python/lasso.py b/python/lasso.py
index 1190445a..2f77c19a 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -990,26 +990,30 @@ class Logout:
def __isprivate(self, name):
return name == '_o'
- def __init__(self, _obj):
- """
- The constructor
- """
- self._o = _obj
-
def __getattr__(self, name):
if self.__isprivate(name):
return self.__dict__[name]
if name[:2] == "__" and name[-2:] == "__" and name != "__members__":
raise AttributeError, name
-
ret = lassomod.logout_getattr(self, name)
- if ret:
- if name=="user":
- ret = User(_obj=ret)
+ if ret is None:
+ return None
+ if name == "user":
+ ret = User(_obj=ret)
+ if name == "request":
+ ret = LogoutRequest(_obj=ret)
+ if name == "response":
+ ret = LogoutResponse(_obj=ret)
return ret
- def new(cls, provider_type, server, user = None):
- obj = lassomod.logout_new(provider_type, server, user)
+ def __init__(self, _obj):
+ """
+ The constructor
+ """
+ self._o = _obj
+
+ def new(cls, server, provider_type):
+ obj = lassomod.logout_new(server, provider_type)
return Logout(obj)
new = classmethod(new)