diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-07-07 14:56:26 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-07-07 14:56:26 +0000 |
| commit | 5d8479a6f6873cecda61e164389abdb35977421f (patch) | |
| tree | bcb06efe04bfaf88ab8bb8f698c9e5f2bbc070cb | |
| parent | 4271f100238a951c8e4b8e3e5ba52a9419417058 (diff) | |
*** empty log message ***
| -rw-r--r-- | lasso/id-ff/user.c | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/lasso/id-ff/user.c b/lasso/id-ff/user.c index e48a20a5..b7bc6a46 100644 --- a/lasso/id-ff/user.c +++ b/lasso/id-ff/user.c @@ -163,31 +163,50 @@ lasso_user_new() LassoUser* lasso_user_new_from_dump(xmlChar *dump) { - LassoNode *user_node, *identities_node; - LassoNodeClass *identities_class; - LassoIdentity *identity; - xmlNodePtr xmlNode; - LassoUser *user; - xmlChar *remote_providerID; + LassoNode *user_node, *identities_node, *assertions_node; + LassoNodeClass *identities_class, *assertions_class; + LassoIdentity *identity; + xmlNodePtr xmlNode; + LassoUser *user; + xmlChar *remote_providerID; user = LASSO_USER(g_object_new(LASSO_TYPE_USER, NULL)); user_node = lasso_node_new_from_dump(dump); + printf("dump from user_node :\n%s\n", lasso_node_export(user_node)); + /* set the assertions */ + printf("get the assertion\n"); + assertions_node = lasso_node_get_child(user_node, "Assertions", NULL); + assertions_class = LASSO_NODE_GET_CLASS(assertions_node); + xmlNode = assertions_class->get_xmlNode(assertions_node); + printf("get children of assertions\n"); + if(xmlNode){ + xmlNode = xmlNode->children; + while(xmlNode){ + if(xmlNode->type==XML_ELEMENT_NODE && xmlStrEqual(xmlNode->name, "Assertion")){ + + } + } + } /* set the identities */ - identities_node = lasso_node_get_child(user, "Identities", NULL); - identities_class = LASSO_NODE_GET_CLASS(user_node); + printf("get children of the identities\n"); + identities_node = lasso_node_get_child(user_node, "Identities", NULL); + identities_class = LASSO_NODE_GET_CLASS(identities_node); xmlNode = identities_class->get_xmlNode(identities_node); + if(xmlNode==NULL){ + return(NULL); + } xmlNode = xmlNode->children; while(xmlNode){ if(xmlNode->type==XML_ELEMENT_NODE && xmlStrEqual(xmlNode->name, "Identity")){ identity = lasso_identity_new(xmlGetProp(xmlNode, "RemoteProviderID")); - lasso_identity_set_localNameIdentifier(user); + lasso_identity_set_local_nameIdentifier(user, identity); + xmlNode = xmlNode->next; } } - return(user); } |
