首先
,設定三種要素:使用者、群組、角色。
使用者為登入用,對應到人。群組對應為使用者的集合,是一種特殊的使用者。角色為一組許可權項的集合,使用者(群組)都有各自的角色。
許可權的實現通過
permission
類和rule
類來實現。
permission
供外部呼叫,
rule
為乙個介面,為許可權判斷規則。
permission
是乙個抽象類,有以下方法
publicbooleanhaspermission(user
user,hashmap
olddata,input
input);
publicstring
getpermissionname();
publicabstractrule
getdenyrule();
publicabstractrule
getacceptrule();
haspermission
方法供外部呼叫,已實現,實現方法為先根據
getdenyrule()
得到的規則判斷許可權是否被阻攔,再根據
getacceptrule
來判斷是否有許可權。 而
rule
介面的接品則由使用者自行定義,隨包附帶了乙個已實現的
rule
,實現的功能如下:
先尋找
user
的所有角色,然後判斷角色是否有許可權,如果無許可權則尋找其父級群組,再取父級群組的所有角色進行判斷是否有許可權,如果無許可權則再往上級群組找,直到找最上一級還是無許可權才判斷為無許可權。
現實現判斷許可權有無許可權的方式已可以達成的有以下三種: 1、
是否有操作的許可權。 2、
是否有操作的子操作的許可權。 3、
在資料為某條件時有操作(子操作)的許可權。
在進行程式開發時,第一步,編寫
user,group,role
的實現類,已提供了一套
xml的實現類。
第二步,寫配置檔案,進行許可權項的配置。
第三步,在程式中要進行許可權判斷的地方呼叫
permission.haspermission
方法即可。
以後我會把**逐天貼出來。
drf 許可權元件
目錄許可權就是某些功能只對特定的使用者開放,比如django中建立使用者可分為超級使用者和普通使用者,此時超級使用者就有許可權進入後台管理系統,而普通使用者就沒有許可權,這是怎麼做到的呢?這就是許可權元件的作用。from rest framework.permissions import basep...
許可權元件應用
4.許可權元件的應用 1.拷貝rbac元件到新專案中,並且註冊 2.遷移資料庫 1.修改rbac使用者表 manytomanyfield 中 關聯寫上role 不要寫字串 class user models.model 使用者表 name models.charfield 使用者名稱 max len...
許可權元件之rbac
rbac 基於角色的許可權訪問控制 role based access control rbac的主要流程 給每個角色賦予不同的許可權,是這個角色的員工都有這個角色的所有許可權。乙個角色可以有多個人員擔任,乙個員工可以擔任多個角色 比如部門經理 業務員等 當員工成功登陸系統時,系統需要獲取這個員工的...