十二、基於Django實現RBAC權限管理


一、RBAC概述

RBAC(Role-Based Access Control,基於角色的訪問控制),通過角色綁定權限,然后給用戶划分角色。

從企業的角度來說,基本上是按照角色來划分職能。比如,CEO,具有公司全局的權限;部門經理,具有部門全局的權限;部門主管,具有部門部分的權限;普通員工,具有部門一小部分權限。

不同的角色,能夠獲取的資源是不一樣的,所以RBAC就是按照這個思維為公司建設權限系統。

角色的引入,讓權限管理非常靈活。

例如:某個員工要離職了,替換他的是一個新員工,這時你需要一一的告訴該新員工他應該做什么,他不能做什么,當工作項非常多的時候,這將是非常繁瑣的過程,且非常容易出錯。如果你把這個職位定義為某個角色,且為這個角色分配固定的權限,不管來多少新人,不管什么職位,只要他對號入座,權限自然就根據角色分配好。當新員工升職后,比如升職成主管或經理,你這時只是角色變換,權限自動分配給他。

 

二、流程圖

大概流程圖如下:

1、人員屬於某個角色,首先給他分配角色,例如:總監、經理、主管、助理等;

2、人員賦予角色后,則給他分配權限,不同的角色,規定有不同的權限。比如:總監級別,能夠增刪改查,無所不能;而經理級別,只能增改查,如果需要刪除,則需要總監審批;主管只有增加和查看,修改需要向經理申請,讓經理審批。

3、不同的權限,實際上是對應數據庫中的某張表,也就是Django中的某個model。

 

 

三、效果圖

人員角色分配:

實現效果:

1、登錄

2、展示權限頁面

 經理登錄后,具備增刪改查權限。

 主管登錄后,具備增改查權限。

職員登錄后,具備查看權限。

 

四、實現過程

實現流程圖:

1、人員登錄后,先驗證用戶是否OK;

2、驗證用戶OK后,則根據人員屬於什么角色,進行權限獲取,並寫入session中;

3、用戶登錄成功,進入index頁面,則根據用戶session中的權限,展示不同的頁面,正所謂:千人千面;

4、用戶根據不同的頁面,進行不同的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM