12、基於Django實現RBAC權限管理

1、RBAC概述

RBAC(Role-Based Access Control,基於角色的訪問控制),經過角色綁定權限,而後給用戶劃分角色。數據庫

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

不一樣的角色,可以獲取的資源是不同的,因此RBAC就是按照這個思惟爲公司建設權限系統。blog

角色的引入,讓權限管理很是靈活。資源

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

 

2、流程圖

大概流程圖以下:登錄

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

二、人員賦予角色後,則給他分配權限,不一樣的角色,規定有不一樣的權限。好比:總監級別,可以增刪改查,無所不能;而經理級別,只能增改查,若是須要刪除,則須要總監審批;主管只有增長和查看,修改須要向經理申請,讓經理審批。model

三、不一樣的權限,其實是對應數據庫中的某張表,也就是Django中的某個model。權限

 

 

3、效果圖

人員角色分配:im

實現效果:

一、登陸

二、展現權限頁面

 經理登陸後,具有增刪改查權限。

 主管登陸後,具有增改查權限。

職員登陸後,具有查看權限。

 

4、實現過程

實現流程圖:

一、人員登陸後,先驗證用戶是否OK;

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

三、用戶登陸成功,進入index頁面,則根據用戶session中的權限,展現不一樣的頁面,正所謂:千人千面;

四、用戶根據不一樣的頁面,進行不一樣的操做。

相關文章
相關標籤/搜索