一 简介:小小的记录下具体的思路和相关代码

二 具体阐述    

   # setting处理逻辑    

   PERMISSION_SESSION_KEY = 'permissions' #这里填写需要存取权限的session-key
  MENU_SESSION_KEY = 'menus'
  WHITE_URL_LIST = [ #放置的url白名单
  r‘^/login/$‘,
  r‘^/logout/$‘,
  r‘^/reg/$‘,
  r‘^/admin/.*‘,
   ]

   #login处理逻辑
     user1=User.objects.filter(name=name,pwd=pwd).first() #登录校对获取queryset对象
     request.session['user_id']=user1.pk #sesssion存储用户ID
     Role.objects.filter(user__name=user1).values('permissions__url').distinct()#去重取得用户的权限列表
     request.session[setting.PERMISSION_SESSION_KEY]=permission_list # session存储用户权限列表
     #middle处理逻辑   

    from django.utils.deprecation import MiddlewareMixin
    from django.conf import settings

    # 白名单设立

  for i in settings.WHITE_URL_LIST:
    if re.match(i, current_url):
     return

   # 登录判断
    if not request.session.get("user_id"):
  # 权限判断
   for ret in request.session["permission"]:
     if re.search(ret,currentpath):