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
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()
# 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