django用户权限的判断放在中间件中

from django.middleware.clickjacking import XFrameOptionsMiddleware
# MiddlewareMixin
from django.shortcuts import render,HttpResponse
import re
from django.conf import settings
from django.utils.deprecation import MiddlewareMixin
class RbacMiddleware(MiddlewareMixin):
    def process_request(self,request):
        path =request.path_info
        # print('weburl:',path[1:-1])
        permission_dic = request.session.get(settings.PERMISSION_SESSION_KEY)
        # print(permission_dic)
        flag =False
        if path=='/login/':
            return None
        path = path[1:-1]
        for reg in permission_dic.values():
            for url in reg['urls']:
                url='^%s$'%(url[1:-1])
                # print(path)
                print(url)
                if re.findall(url,path):
                    flag=True
                    break
        if flag:
            return None
        else:
            return HttpResponse("无访问权限")

具体查看 D:\DjangoProjectday\权限管理3

posted @ 2018-01-19 21:37  hello沃德  阅读(196)  评论(0)    收藏  举报