示例#1
0
 def set_email(self, email, user_id=None):
     # set or change a user's email address
     user_key = EnkiModelUser.get_key_by_email(email)
     if email and (not user_key or user_key.id() == user_id):
         # if the email doesn't exist in the db or already belongs to the user:
         if user_id == None:
             # create a new user
             user = EnkiModelUser(email=email)
         else:
             # update existing user
             user = ndb.Key(EnkiModelUser, user_id).get()
             user.email = email
         user.put()
         return user
     else:
         return None
示例#2
0
 def get_or_create_user_from_authid(self,
                                    auth_id,
                                    email=None,
                                    allow_create=True):
     user = None
     user_with_same_auth_id = EnkiModelUser.get_by_auth_id(auth_id)
     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 or they've removed their 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
     if not user and allow_create:
         # create a new user
         user = EnkiModelUser(email=email, auth_ids_provider=[auth_id])
         user.put()
     return user