Exemple #1
0
    def post(self, request, body_params):
        try:
            request_body = request.headers
            recv_token = request_body["Token"]
            login_type = request_body["platform"] if "platform" in request_body else 1  # 1是网页端
            account = body_params['account']
            password = body_params['password']

            if recv_token == "none":  # 不存在token才登录,“none”是前端兼容IE浏览器
                user_m = Users.objects.filter(account=account).first()
                if user_m:
                    if user_m.permission:  # 验证是否允许登录
                        if user_m.authentication(password):  # 验证密码
                            token = Tokens.objects.token_create(user_m.id, login_type)
                            data = {
                                "account": account,
                                "userType": user_m.user_type,
                                "name": user_m.name,
                                "portrait": user_m.portrait,
                                "token": token
                            }
                            return response_success(msg="登录成功", code=0, data=data)
                        return response_failure(msg='密码错误,请重新输入', code=6)
                    return response_failure(msg='用户被禁止登录', code=7)
                return response_failure(msg="账号不存在", code=5)
            return response_failure(msg="携带token登录", code=4)
        except BaseException as err:
            log.error(f"登录接口异常 {err}")
Exemple #2
0
        def in_fun(self, *request):
            request_method = None
            params = None
            for k, v in kwargs.items():
                request_method = k
                params = v
            if request_method == "POST":
                request_post = request[0].POST
                p = {}
                for val in params:  # 遍历客户端请求是否包含字段
                    param = request_post.get(val, None)
                    if not param:
                        return response_failure(msg=f'需要参数{val}', code=3)
                    p[val] = param  # 若包含则返回给被装饰的函数
                return func(self, *request, p)
            if request_method == "POST_BODY":
                request_body = request[0].body
                if request_body:
                    p = {}
                    post_body = json.loads(request_body)
                    for val in params:  # 遍历客户端请求是否包含字段
                        try:
                            find_flag = val.find(":?")
                            if find_flag > 0:  # 可选参数
                                val = val[:find_flag]
                                if val in post_body.keys():
                                    param = post_body[val]
                                else:
                                    param = None
                            else:
                                param = post_body[val]
                            p[val] = param  # 若包含则返回给被装饰的函数
                        except:
                            return response_failure(msg=f'需要参数{val}', code=3)
                    return func(self, *request, p)
                return response_failure(msg=f'请携带参数请求', code=3)
            elif request_method in ["GET", "DELETE"]:
                request_get = request[0].GET
                p = {}
                for val in params:  # 遍历客户端请求是否包含字段
                    if val not in request_get:
                        return response_failure(msg=f'需要参数{val}', code=3)
                    param = request_get.get(val, None)
                    p[val] = param  # 若包含则返回给被装饰的函数
                return func(self, *request, p)

            else:
                return response_failure(msg=f'未知类型{request_method}', code=3)
Exemple #3
0
 def in_fun(*request):
     request_method = None
     params = None
     for k, v in kwargs.items():
         request_method = k
         params = v
     if request_method == "POST":
         request_post = request[0].POST
         p = {}
         for val in params:  # 遍历客户端请求是否包含字段
             param = request_post.get(val, None)
             if not param:
                 return response_failure(msg=f'需要参数{val}', code=3)
             if isinstance(param, str):
                 param = param.strip()
             p[val] = param  # 若包含则返回给被装饰的函数
         return func(*request, p)
     if request_method == "POST_BODY":
         request_body = request[0].body
         if request_body:
             p = {}
             post_body = json.loads(request_body)
             for val in params:  # 遍历客户端请求是否包含字段
                 try:
                     param = post_body[val]
                     if isinstance(param, str):
                         param = param.strip()
                     p[val] = param  # 若包含则返回给被装饰的函数
                 except:
                     return response_failure(msg=f'需要参数{val}', code=3)
             return func(*request, p)
         return response_failure(msg=f'请携带参数请求', code=3)
     elif request_method in ["GET", "DELETE"]:
         request_get = request[0].GET
         p = {}
         for val in params:  # 遍历客户端请求是否包含字段
             param = request_get.get(val, None)
             if not param:
                 return response_failure(msg=f'需要参数{val}', code=3)
             if isinstance(param, str):
                 param = param.strip()
             p[val] = param  # 若包含则返回给被装饰的函数
         return func(*request, p)
Exemple #4
0
 def wrapper(*args):
     try:
         headers = args[1].headers
         recv_token = headers["Token"]
         if recv_token:
             user_id = Tokens.objects.token_check(recv_token)
             if user_id:
                 return func(*args, user_id)
         return JsonResponse({"code": 4001, "im": "token不存在或token过期"})
     except KeyError:
         return response_failure(msg="缺少token", code=2)
Exemple #5
0
 def post(self, request, user_id, params):
     """
     {
     "oldPassword":"******",
     "newPassword":"******"
     }
     """
     try:
         user = Users.objects.filter(id=user_id).first()
         if user:
             if user.authentication(params["oldPassword"]):
                 user.password = user.encryption(params["newPassword"])
                 user.save()
                 return response_success(msg="密码修改成功", code=0)
             return response_failure(msg='旧密码错误,请重新输入', code=6)
         return user_does_not_exists()
     except BaseException as err:
         log.error(err)
         return view_exception()
Exemple #6
0
 def in_fun(*request):
     if request[0].method == request_method:
         return func(*request)
     else:
         return response_failure(msg=f"请求方式不是{request_method}", code=1)