def get_or_create_user_from_authid( self, authId, email = None, allow_create = False ): user = None user_with_same_auth_id = EnkiModelUser.query( EnkiModelUser.auth_ids_provider == authId ).get() if user_with_same_auth_id: # if a user with the same auth id already exists but has a blank email: add the email to the account. # note: if the account has an email, we don't overwrite it. if email and user_with_same_auth_id.email == None: user = self.set_email( email, user_with_same_auth_id.key.id()) else: user = user_with_same_auth_id elif email: # no user with the same auth id, but there is a user with the same email: add the auth id to the account user_with_same_email = EnkiModelUser.query( EnkiModelUser.email == email ).get() if user_with_same_email: colon = authId.find( ':' ) provider_name = str( authId[ :colon ]) provider_uid = str( authId[ colon+1: ]) self.send_email( email, MSG.SEND_EMAIL_AUTH_NEW_SUBJECT(), MSG.SEND_EMAIL_AUTH_NEW_BODY( enki.libutil.get_local_url( 'profile' ), provider_name, provider_uid ) ) user = self.set_authid( authId, user_with_same_email.key.id()) if not user and allow_create: # create a new user user = EnkiModelUser( email = email, auth_ids_provider = [ authId ]) user.put() return user
def exist_EnkiUser(email): count = EnkiModelUser.query(EnkiModelUser.email == email).count(1) if count: return True else: return False
def get_key_EnkiUser(email): key = EnkiModelUser.query(EnkiModelUser.email == email).get(keys_only=True) if key: return key else: return None
def get_EnkiUser(email): entity = EnkiModelUser.query(EnkiModelUser.email == email).get() if entity: return entity else: return None
def exist_Auth_Id( auth_id ): count = EnkiModelUser.query( EnkiModelUser.auth_ids_provider == auth_id ).count( 1 ) return count > 0
def get_EnkiUser_by_auth_id( auth_id ): entity = EnkiModelUser.query( EnkiModelUser.auth_ids_provider == auth_id ).get() return entity
def exist_EnkiUser( email ): count = EnkiModelUser.query( EnkiModelUser.email == email ).count( 1 ) return count > 0
def get_key_EnkiUser( email ): key = EnkiModelUser.query( EnkiModelUser.email == email ).get( keys_only = True ) return key
def get_EnkiUser( email ): entity = EnkiModelUser.query( EnkiModelUser.email == email ).get() return entity