Commit ID d8113184cfe4904bf9b6a7db42aab9f749a16344
|Contributor:||Mikaël Ates||Files Modified:||29|
|Date:||12-October-2011 at 09:21||Lines Added:||8225|
|Repository:||http://dev.entrouvert.org/git/authentic.git/ master||Lines Removed:||0|
|Commit Comment:|| [idp] Add attribute aggregator application
Attribute aggregator provides a main Model class called UserAttributeProfile,
functions to load attributes and extract attributes.
The mapping between attribute namespaces is built-in and depends on a unique
A main schema is defined and is based on LDAP/X500 for naming. The support
of http://schemas.xmlsoap.org/ws/2005/05/identity/claims is partly complete.
Source of attributes are connected with attribute loading functions using
Why not use the Django User profile?
The django user profile needs to define attributes as class attributes and then
support form filling or mapping with LDAP.
That is useful and may be used, especially because the profile can be used as a
source of attribute to load in the attribute_aggregator profile.
The attribute_aggregator profile allow to load multivalued attributes from any
source supported (LDAP, Django profile and attributes in Django session for now)
from any namespace defined in mapping.py (LDAP/X500 and claims for now).
The profile can be loaded giving a source or a list of attribute, or can be
from any known source, or with a dictionnary.
Attributes can be extracted with many functions in any namespace supported.
The schema is defined in mapping and is made of definitions like this:
"display_name": _("sn surname"),
The profile store all the data in a text field taht contains a cPickle list of
instances of the class AttributeData.
The profile is attached to a user and then can be created or loaded with
profile = load_or_create_user_profile(user=user)
User may be None to create a temporary profile for an anonymous user. But
that need a DB cleaning function not implemented.
The AttributeData instances have a field expiration_data. It the profile exists,
obsolete data are removed at loading.
|File||Language||Code Added||Code Removed||Comments Added||Comment Removed||Blanks Added||Blanks Removed|
|authentic2/attribute_aggregator/__init__.py||No source code was detected in this file.|
|...ibute_aggregator/ldifs/60supann.ldif.txt||No source code was detected in this file.|
|...ttribute_aggregator/ldifs/educourse.ldif||No source code was detected in this file.|
|...ttribute_aggregator/ldifs/edumember.ldif||No source code was detected in this file.|
|...2/attribute_aggregator/ldifs/eduorg.ldif||No source code was detected in this file.|
|...ttribute_aggregator/ldifs/eduperson.ldif||No source code was detected in this file.|