123456789101112131415161718192021222324252627282930313233 |
- import re
- import jwt
- from django.http import HttpResponse
- from TestLaboratory.settings import SECRET_KEY
- from apps.user.models import User, Role
- class LogInfo(object):
- """使用类装饰器来权限校验"""
- def __init__(self, func):
- self.func = func
- def __call__(self, request, *args, **kwargs):
- token = request.META.get('HTTP_ACCESSTOKEN')
- SALT = SECRET_KEY
- payload = jwt.decode(token, SALT, True)
- user = User.objects.get(username=payload['username'])
- role = Role.objects.get(id="TestLaboratory_V1_Role_"+str(user.identify+1))
- permission = role.permissions.filter(method=request.method)
- log = None
- for per in permission:
- if re.search(per.url, request.path[:-1]):
- log = per
- break
- return self.func(request, *args, **kwargs)
|