def get_user(eid): email, guid = (eid, None)[::'@' not in eid and -1 or 1] if email: result = User.by_email(email) if not result: return "Email available", 404 return 'Email in use', 200 return User.by_guid(guid)
def create_account(email=None, password=None): result = User.by_email(email) if result: raise exceptions.BadRequest("Email in use") user = User() user.email = email user.password = bcrypt.hashpw(password, bcrypt.gensalt()) user.save() init_session(user) return user.guid
def login(email=None, password=None): user = User.by_email(email) if not user: raise exceptions.NotFound('User not found') hashed = user.password().value if bcrypt.hashpw(password, hashed) != hashed: raise exceptions.Unauthorized() init_session(user) return user.guid