diff options
Diffstat (limited to 'coip/apps/auth/views.py')
-rw-r--r-- | coip/apps/auth/views.py | 62 |
1 files changed, 3 insertions, 59 deletions
diff --git a/coip/apps/auth/views.py b/coip/apps/auth/views.py index 6dd311d..bab6bf8 100644 --- a/coip/apps/auth/views.py +++ b/coip/apps/auth/views.py @@ -4,71 +4,15 @@ Created on Jul 5, 2010 @author: leifj ''' from django.http import HttpResponseRedirect -from coip.apps.userprofile.models import UserProfile -from django.contrib.auth.models import User -from coip.apps.auth.utils import anonid +from coip.apps.userprofile.models import UserProfile, user_profile from coip.apps.name.models import lookup -import datetime from django.views.decorators.cache import never_cache -import logging +from coip.apps.membership.models import add_member -def meta(request,attr): - v = request.META.get(attr) - if not v: - return None - 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.user.username) - if created: - profile.identifier = request.user.username - profile.user = request.user - profile.save() - - - update = False - cn = meta1(request,'cn') - if not cn: - cn = meta1(request,'displayName') - logging.warn(cn) - if not cn: - fn = meta1(request,'givenName') - ln = meta1(request,'sn') - if fn and ln: - cn = "%s %s" % (fn,ln) - if not cn: - cn = profile.identifier - - mail = meta1(request,'mail') - - 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) - if meta_value and not attrib_value: - setattr(profile,attrib_name,meta_value) - update = True - - if request.user.password == "": - request.user.password = "(not used for federated logins)" - update = True - - if update: - request.user.save() - - # Allow auto_now to kick in for the lastupdated field - #profile.lastupdated = datetime.datetime.now() - profile.save() - + #profile,created = UserProfile.objects.get_or_create(user=request.user) next = request.session.get("after_login_redirect", None) if next is not None: return HttpResponseRedirect(next) |