Example #1
0
    def create_user(self, **kwargs):
        username = kwargs.get("username")
        if username:
            user = UserCache.get(username)
            if user is not None:
                user, authenticated = self.validate(username,
                                                    kwargs.get("password"))
                if authenticated:
                    return user
                else:
                    return abort(401, "authenticate validate failed")
        else:
            return abort(400, "argument username is required")
        user = User()
        email = kwargs.get("email", "")
        if not email:
            return abort(400, "argument email is required")
        user.email = email
        user.password = kwargs.get("password")
        user.username = kwargs.get("username", "")
        user.nickname = kwargs.get("nickname") if kwargs.get("nickname") \
            else kwargs.get("username", "")
        key, secret = self._generate_key()
        user.key = key
        user.secret = secret
        user.date_joined = datetime.datetime.now()
        user.block = 0

        db.session.add(user)
        try:
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            current_app.logger.error("create user is error {0}".format(str(e)))
            return abort(500, "create user is error, {0}".format(str(e)))
        return user