Ejemplo n.º 1
0
                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)
            else:
                for openid in userp.localOpenids():
                    # make sure openid exists in ESGF database, if not migrate user
                    if esgfDatabaseManager.getUserByOpenid(openid) is None:
                        esgfDatabaseManager.insertUser(userp)

        else:
            #print "Ignoring non-local user: %s" % user
            pass
Ejemplo n.º 2
0
import cog
path = os.path.dirname(cog.__file__)
sys.path.append( path )
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from django.contrib.auth.models import User
from cog.models import UserProfile

# cleanup from previous executions
for user in User.objects.filter(username='******'):
    user.delete()

# insert given user
from cog.plugins.esgf.security import ESGFDatabaseManager
esgfDatabaseManager = ESGFDatabaseManager()

user = User.objects.create(first_name='Test', last_name='User', username='******', email='*****@*****.**', password='******')
userProfile = UserProfile.objects.create(user=user, institution='Institution', city='City', state='State', country='Country')

#esgfUser = esgfDatabaseManager.insertUser(userProfile)
openid = ''
for userOpenID in user.useropenid_set.all():
    openid = userOpenID.claimed_id
    print 'User openid=%s' % openid

# verify user was inserted
esgfUser2 = esgfDatabaseManager.getUserByOpenid( openid )
print "Retrieved user with openid=%s" % esgfUser2.openid

# cleanup tgis execution
user.delete()
Ejemplo n.º 3
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)
     else:
         for openid in userp.localOpenids():
             # make sure openid exists in ESGF database, if not migrate user
             if esgfDatabaseManager.getUserByOpenid(openid) is None:
                 esgfDatabaseManager.insertUser(userp)
                 
                     
 else:
     #print "Ignoring non-local user: %s" % user
     pass