django基础知识~RBAC实验部分代码记录
一 簡(jiǎn)介:小小的記錄下具體的思路和相關(guān)代碼
二 具體闡述? ??
? ?# setting處理邏輯?? ?
? ?PERMISSION_SESSION_KEY = 'permissions' #這里填寫需要存取權(quán)限的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() #登錄校對(duì)獲取queryset對(duì)象
? ? ?request.session['user_id']=user1.pk #sesssion存儲(chǔ)用戶ID
? ? ?Role.objects.filter(user__name=user1).values('permissions__url').distinct()#去重取得用戶的權(quán)限列表
? ? ?request.session[setting.PERMISSION_SESSION_KEY]=permission_list # session存儲(chǔ)用戶權(quán)限列表
? ? ?#middle處理邏輯? ?
? ? from django.utils.deprecation import MiddlewareMixin
? ? from django.conf import settings
? ? # 白名單設(shè)立
? for i in settings.WHITE_URL_LIST:
? ? if re.match(i, current_url):
? ? ?return
? ?# 登錄判斷
? ? if not request.session.get("user_id"):
? # 權(quán)限判斷
? ?for ret in request.session["permission"]:
? ? ?if re.search(ret,currentpath):
? ? ? ?
轉(zhuǎn)載于:https://www.cnblogs.com/danhuangpai/p/11017651.html
總結(jié)
以上是生活随笔為你收集整理的django基础知识~RBAC实验部分代码记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell编程系列23--shell操作
- 下一篇: 手写ORM入门篇(一)