Ejemplo n.º 1
0
            userp = user.profile
        except ObjectDoesNotExist:
            userp = UserProfile.objects.create(user=user)

        # select local users:
        if userp.type == 1:

            # 1) CoG users with no local openid
            if len(userp.localOpenids()) == 0:

                # look for user email in ESGF database
                esgfUsers = esgfDatabaseManager.getUsersByEmail(user.email)

                # migrate CoG user --> ESGF user
                if len(esgfUsers) == 0:
                    esgfDatabaseManager.insertUser(userp)

                # associate local ESGF openid(s) to CoG user; if none is found, create a new local openid
                else:
                    found = False
                    for esgfUser in esgfUsers:
                        # only assign if openid is local, and contains the CoG username
                        if settings.ESGF_HOSTNAME in esgfUser.openid and user.username in esgfUser.openid:
                            if not UserOpenID.objects.filter(
                                    claimed_id=esgfUser.openid).exists():
                                openid = UserOpenID.objects.create(
                                    user=user,
                                    claimed_id=esgfUser.openid,
                                    display_id=esgfUser.openid)
                                print 'Assigned ESGF openid=%s to CoG user=%s' % (
                                    openid.claimed_id, user)
Ejemplo n.º 2
0
     userp = user.profile
 except ObjectDoesNotExist:
     userp = UserProfile.objects.create(user=user)
     
 # select local users:
 if userp.type==1:
     
     # 1) CoG users with no local openid
     if len(userp.localOpenids())==0:
         
         # look for user email in ESGF database
         esgfUsers = esgfDatabaseManager.getUsersByEmail(user.email)
         
         # migrate CoG user --> ESGF user
         if len(esgfUsers)==0:                
             esgfDatabaseManager.insertUser(userp)
             
         # associate local ESGF openid(s) to CoG user; if none is found, create a new local openid
         else:
             found = False
             for esgfUser in esgfUsers:
                 # only assign if openid is local, and contains the CoG username
                 if settings.ESGF_HOSTNAME in esgfUser.openid and user.username in esgfUser.openid:
                     if not UserOpenID.objects.filter(claimed_id=esgfUser.openid).exists():
                         openid = UserOpenID.objects.create(user=user, claimed_id=esgfUser.openid, display_id=esgfUser.openid)
                         print 'Assigned ESGF openid=%s to CoG user=%s' % (openid.claimed_id, user)
                         found = True
             if not found:
                 esgfDatabaseManager.insertUser(userp)
                 
     # 2) CoG user with local openid(s)