diff options
author | Leif Johansson <leifj@sunet.se> | 2010-12-12 00:18:18 +0100 |
---|---|---|
committer | Leif Johansson <leifj@sunet.se> | 2010-12-12 00:18:18 +0100 |
commit | beb688783b77b46357f8096e643e7f06ca354309 (patch) | |
tree | 84de885d9ef116e165f49f2a0d1be99c74b20148 /coip/apps | |
parent | e2143053f37bea7f73f4186d0ed4a44d5d4e066a (diff) |
remap shib attributes
Diffstat (limited to 'coip/apps')
-rw-r--r-- | coip/apps/auth/views.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/coip/apps/auth/views.py b/coip/apps/auth/views.py index 7bdcad9..1f99441 100644 --- a/coip/apps/auth/views.py +++ b/coip/apps/auth/views.py @@ -19,6 +19,13 @@ def meta(request,attr): values = filter(lambda x: x != "(null)",v.split(";")) return values; +def meta1(request,attr): + v = meta(request,attr) + if v: + return v[0] + else: + return None + def accounts_login_federated(request): if request.user.is_authenticated(): profile,created = UserProfile.objects.get_or_create(identifier=request.META.get("REMOTE_USER")) @@ -33,21 +40,21 @@ def accounts_login_federated(request): update = False - cn = meta(request,'cn') + cn = meta1(request,'cn') if not cn: - cn = meta(request,'displayName') + cn = meta1(request,'displayName') logging.warn(cn) if not cn: - fn = meta(request,'givenName') - ln = meta(request,'sn') + fn = meta1(request,'givenName') + ln = meta1(request,'sn') if fn and ln: cn = "%s %s" % (fn,ln) if not cn: cn = profile.identifier - mail = meta(request,'mail') + mail = meta1(request,'mail') - idp = meta(request,'Shib-Identity-Provider') + idp = meta1(request,'Shib-Identity-Provider') for attrib_name, meta_value in (('display_name',cn),('email',mail),('idp',idp)): attrib_value = getattr(profile, attrib_name) |