summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-07-26 23:45:58 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-07-26 23:45:58 +0000
commit73fd0e85c53a11df3267ca7946e25530f8f6be8d (patch)
tree33e4661f6d27366b62d9a25ee2f4d70d56062b13
parentdb051a1a73684708d47ede1acefdaeff0cf99120 (diff)
downloadlasso-73fd0e85c53a11df3267ca7946e25530f8f6be8d.tar.gz
lasso-73fd0e85c53a11df3267ca7946e25530f8f6be8d.tar.xz
lasso-73fd0e85c53a11df3267ca7946e25530f8f6be8d.zip
fix a bug in python binding user_add_assertion : give obj of python assertion, add a copy of assertion in lasso_add_assertion ( not sure, but assertion should be copied )
-rw-r--r--lasso/id-ff/user.c6
-rw-r--r--lasso/id-ff/user.h1
-rw-r--r--python/environs/py_user.c6
-rw-r--r--python/examples/user.py8
4 files changed, 18 insertions, 3 deletions
diff --git a/lasso/id-ff/user.c b/lasso/id-ff/user.c
index 1624503b..892f0695 100644
--- a/lasso/id-ff/user.c
+++ b/lasso/id-ff/user.c
@@ -94,6 +94,8 @@ lasso_user_add_assertion(LassoUser *user,
int i;
gboolean found;
+ LassoNode *copy_assertion;
+
g_return_val_if_fail(user!=NULL, -1);
g_return_val_if_fail(remote_providerID!=NULL, -2);
g_return_val_if_fail(assertion!=NULL, -3);
@@ -112,7 +114,9 @@ lasso_user_add_assertion(LassoUser *user,
g_ptr_array_add(user->assertion_providerIDs, g_strdup(remote_providerID));
/* add the assertion */
- g_hash_table_insert(user->assertions, g_strdup(remote_providerID), assertion);
+ copy_assertion = LASSO_NODE(g_object_new(LASSO_TYPE_ASSERTION, NULL));
+ lasso_node_import_from_node(copy_assertion, assertion);
+ g_hash_table_insert(user->assertions, g_strdup(remote_providerID), copy_assertion);
return(0);
}
diff --git a/lasso/id-ff/user.h b/lasso/id-ff/user.h
index 8ffc4301..931450c8 100644
--- a/lasso/id-ff/user.h
+++ b/lasso/id-ff/user.h
@@ -32,6 +32,7 @@ extern "C" {
#include <lasso/xml/xml.h>
#include <lasso/protocols/identity.h>
+#include <lasso/protocols/elements/assertion.h>
#define LASSO_TYPE_USER (lasso_user_get_type())
#define LASSO_USER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_USER, LassoUser))
diff --git a/python/environs/py_user.c b/python/environs/py_user.c
index 9fdd71db..10a50513 100644
--- a/python/environs/py_user.c
+++ b/python/environs/py_user.c
@@ -29,6 +29,8 @@
#include "py_user.h"
+#include "../protocols/elements/py_assertion.h"
+
PyObject *LassoUser_wrap(LassoUser *user) {
PyObject *ret;
@@ -73,7 +75,7 @@ PyObject *user_add_assertion(PyObject *self, PyObject *args){
}
else return NULL;
- lasso_user_add_assertion(LassoUser_get(user_obj), remote_providerID, assertion_node);
+ lasso_user_add_assertion(LassoUser_get(user_obj), remote_providerID, LassoAssertion_get(assertion_node));
Py_INCREF(Py_None);
return (Py_None);
@@ -88,7 +90,7 @@ PyObject *user_destroy(PyObject *self, PyObject *args) {
return NULL;
}
else return NULL;
-
+
lasso_user_destroy(LassoUser_get(user_obj));
Py_INCREF(Py_None);
diff --git a/python/examples/user.py b/python/examples/user.py
index 6fd5de1a..f03761b5 100644
--- a/python/examples/user.py
+++ b/python/examples/user.py
@@ -34,8 +34,16 @@ print "Dump of user environ :"
print user.dump()
user2 = lasso.User.new_from_dump(user.dump());
+print 'user2 dump 1'
+print user2.dump()
assertion = lasso.Assertion("http://nowhere.com", "CD8CS7C6CS6CD6C6SC6SSDC6CS6D")
+
+print 'user dump 1'
+print user.dump()
+
user.add_assertion("https://service-provider1:2003/liberty-alliance/metadata", assertion)
+print user.dump()
+
user.destroy()