django基础知识~RBAC实验部分代码记录
一 简介:小小的记录下具体的思路和相关代码
二 具体阐述
# 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):