Пример #1
0
 def _handle_regular_user(self, data):
     session_model = Session()
     session_id = g.get("session_id", None)
     model = UserModel(session_id)
     user = model.create(data)
     if user:
         session_model.update(session_id, user_id=user.id)
         return user
     return None
Пример #2
0
    def _handle_social_user(self, data):
        # generate random password for social users
        if not self._validate_social_auth(data):
            raise SocialError("Invalid social auth")
        user = None
        data["password"] = str(uuid.uuid4()) + str(time.time())
        session_id = g.get("session_id", None)
        model = UserModel(session_id)
        registered = model.ident_exists(data["ident"])
        session_model = Session()
        if registered:  # social auth already checked
            user = model.get(data["ident"])
        else:
            if model.username_exists(data["username"]):
                data["username"] += "-%s" % (time.strftime("%H%M%S"))
            user = model.create(data)

        if user:
            session_model.update(
                session_id,
                user_id=user.id,
                social_access_token=data.get("social_access_token"))
        return user