def post(self): self.parser.add_argument("id", type=int, required=True, location="json", help='id is required') self.parser.add_argument( "email", type=inputs.regex( r'(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)'), required=True, location="json", help='email format is incorrect') self.parser.add_argument("password", type=password_len, location="json", trim=True) args = self.parser.parse_args() userEmailInfo = UsersModel.query.filter_by(email=args.email).all() for item in userEmailInfo: if item.id != args.id: return pretty_result(code.ERROR, msg='该邮箱已经被注册!') userInfo = UsersModel.query.filter_by(id=args.id).first() userInfo.email = args.email if args.password: userInfo.password = UsersModel.set_password( UsersModel, args.password) UsersModel.update(userInfo) return pretty_result(code.OK, msg='用户信息更新成功!')
def test(self): users_model = UsersModel(PostgresConnection().get_connection()) users_amount = users_model.amount()[0] username = random_string() password = random_string() returned_data = users_model.create({ "name": "name", "role": 1, "date_registration": date.today(), "username": username, "pwd_hash": password, "pwd_salt": uuid.uuid4().hex, "date_last_update": date.today(), "status": True }) assert (users_amount + 1 == users_model.amount()[0]) user = users_model.read({'username': username}) assert (user['role'] == 1) new_username = random_string() users_model.update({"username": new_username}, {"id": returned_data['id']}) user = users_model.read({"username": new_username}) assert (user is not None) users_model.delete({"id": returned_data['id']}) assert (users_model.read({"username": new_username}) is None)
def authenticate(self, username, password): """ 用户登录,登录成功返回token,写将登录时间写入数据库;登录失败返回失败原因 :param password: :return: json """ userInfo = UsersModel.query.filter_by(username=username).first() if (userInfo is None): return pretty_result(code.OK, data='', msg='找不到用户') else: if (UsersModel.check_password(UsersModel, userInfo.password, password)): login_time = int(time.time()) userInfo.login_time = login_time UsersModel.update(UsersModel) token = self.encode_auth_token(userInfo.id, login_time) return pretty_result(code.OK, data=token.decode(), msg='登录成功') else: return pretty_result(code.OK, data='', msg='密码不正确')
def put(self): self.parser.add_argument("id", type=int, required=True, location="json", help='id is required') self.parser.add_argument( "email", type=inputs.regex( r'(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)'), required=True, location="json", help='email format is incorrect') # self.parser.add_argument("permission", type=str, choices=['test', 'guest', 'user', 'admin', 'superAdmin'], # required=True, location="json", # help='permission is required and only (test,user,admin,superAdmin)') self.parser.add_argument("permission", type=str, required=True, location="json", help='permission is required') self.parser.add_argument("password", type=password_len, location="json", trim=True) args = self.parser.parse_args() userEmailInfo = UsersModel.query.filter_by(email=args.email).all() for item in userEmailInfo: if item.id != args.id: return pretty_result(code.ERROR, msg='该邮箱已经被注册!') userInfo = UsersModel.query.filter_by(id=args.id).first() userInfo.email = args.email userInfo.permission = args.permission if args.password: userInfo.password = UsersModel.set_password( UsersModel, args.password) UsersModel.update(userInfo) return pretty_result(code.OK, msg='用户信息更新成功!')
def post(self, username, password): """ 用户登录创建token """ userInfo = UsersModel.query.filter_by(username=username).first() if (userInfo is None): return pretty_result(code.ERROR, data='', msg='找不到用户') else: if (UsersModel.check_password(UsersModel, userInfo.password, password)): login_time = int(time.time()) userInfo.login_time = login_time UsersModel.update(UsersModel) user_id = userInfo.id token, refresh_token = self._generate_tokens(user_id) return pretty_result(code.OK, data={ 'access_token': token, 'refresh_token': refresh_token }, msg='登录成功') else: return pretty_result(code.ERROR, data='', msg='密码不正确')