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