Esempio n. 1
0
 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)
Esempio n. 3
0
 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='密码不正确')
Esempio n. 4
0
 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='用户信息更新成功!')
Esempio n. 5
0
 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='密码不正确')