Django許可權組建

2021-09-03 03:13:09 字數 3600 閱讀 6977

中介軟體rbac的**!

# 在這裡建立乙個中介軟體,在進入檢視以前判斷登入人員是否有許可權!

:# 得到當前訪問路徑

current_path = request.path_info

# 製造一張白名單,檢查是否在白名單裡面

valid_url_list =

["/login/"

,"/reg/"

,"/admin/.*"

]for valid_url in valid_url_list:

ret = re.match(valid_url, current_path)

# 利用正規表示式提起url

if ret:

return

none

# 檢查是否登入

user_id = request.session.get(

"user_id")if

not user_id:

return redirect(

"/login/"

)# 校驗許可權

permission_list = request.session.get(

"permissions_list",[

])# 提出url,沒有就返回空

key =

false

# 製造一把鑰匙,判斷許可權

for permission in permission_list:

permission =

"^%s$"

% permission # 拼接字串

"沒有訪問許可權"

)return

none

primisstion.py裡面存放了使用者的許可權,登入的時候把許可權加入到cookie裡面

# 在這裡註冊使用者的許可權!

definitial_permission

(user,request)

: permission = user.roles.

all(

).values(

"permissions__url"

).distinct(

) permissions_list =

for item in permission:

# print("***************=",item) item 是乙個字典物件

"permissions__url"])

# print(permissions_list) 輸出為乙個列表:['/permission/', '/permission/delet/']

# 現在把列表註冊到session裡面去!

request.session[

"permissions_list"

]= permissions_list

下面就是主檢視xiews.py的函式了

# 將使用者id註冊在session裡面和cookie一起,方便以後提取!

request.session[

"user_id"

]= user.pk

# 在session裡面註冊使用者許可權,許可權表在另外的表裡面,我們先導入

"登入成功!"

,]

人生苦短,我學python!

django許可權認證

1 首先參考django官方文件,將admin模組搭建起來 2 一般我們設定了admin為管理員,但是管理員預設具備所有許可權,即使沒有顯式賦權。3 如何查詢使用者對應的許可權 from django.contrib.auth.models import user,permission user.o...

Django設定許可權

django1.9 使用django內建的許可權驗證機制。內建許可權表名 auth permissions models.py from django.db import models class student models.model class meta 內建許可權 default permi...

Django 許可權與分組

在使用authenticate進行驗證後,如果驗證通過了。那麼會返回乙個user物件,拿到user物件後,可以使用django.contrib.auth.login進行登入。示例 如下 user authenticate username username,password password if ...