diff options
Diffstat (limited to 'python/environs/py_login.c')
| -rw-r--r-- | python/environs/py_login.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/python/environs/py_login.c b/python/environs/py_login.c index 91649aea..5dcf08a5 100644 --- a/python/environs/py_login.c +++ b/python/environs/py_login.c @@ -24,6 +24,7 @@ */ #include "../lassomod.h" +#include "../xml/py_xml.h" #include "py_login.h" @@ -41,6 +42,37 @@ PyObject *LassoLogin_wrap(LassoLogin *login) { /******************************************************************************/ +PyObject *login_getattr(PyObject *self, PyObject *args) { + PyObject *login_obj; + LassoLogin *login; + const char *attr; + + if (CheckArgs(args, "OS:login_get_attr")) { + if (!PyArg_ParseTuple(args, "Os:login_get_attr", &login_obj, &attr)) + return NULL; + } + else return NULL; + + login = LassoLogin_get(login_obj); + + if (!strcmp(attr, "__members__")) + return Py_BuildValue("[ssss]", "request", "response", "request_type", + "msg_url"); + if (!strcmp(attr, "request")) + return (LassoNode_wrap(LASSO_PROFILE_CONTEXT(login)->request)); + if (!strcmp(attr, "response")) + return (LassoNode_wrap(LASSO_PROFILE_CONTEXT(login)->response)); + if (!strcmp(attr, "request_type")) + return (int_wrap(LASSO_PROFILE_CONTEXT(login)->request_type)); + if (!strcmp(attr, "msg_url")) + return (charPtr_wrap(LASSO_PROFILE_CONTEXT(login)->msg_url)); + + Py_INCREF(Py_None); + return (Py_None); +} + +/******************************************************************************/ + PyObject *login_new(PyObject *self, PyObject *args) { PyObject *server_obj, *user_obj; LassoLogin *login; @@ -110,3 +142,37 @@ PyObject *login_build_artifact_msg(PyObject *self, PyObject *args) { return (int_wrap(ret)); } + +PyObject *login_build_authn_request_msg(PyObject *self, PyObject *args) { + PyObject *login_obj; + gint ret; + + if (CheckArgs(args, "O:login_build_authn_request_msg")) { + if(!PyArg_ParseTuple(args, (char *) "O:login_build_authn_request_msg", + &login_obj)) + return NULL; + } + else return NULL; + + ret = lasso_login_build_authn_request_msg(LassoLogin_get(login_obj)); + + return (int_wrap(ret)); +} + +PyObject *login_init_authn_request(PyObject *self, PyObject *args) { + PyObject *login_obj; + gchar *remote_providerID; + gint ret; + + if (CheckArgs(args, "OS:login_init_authn_request")) { + if(!PyArg_ParseTuple(args, (char *) "Os:login_init_authn_request", + &login_obj, &remote_providerID)) + return NULL; + } + else return NULL; + + ret = lasso_login_init_authn_request(LassoLogin_get(login_obj), + remote_providerID); + + return (int_wrap(ret)); +} |
