尚學堂OA系統中ACL的CRUD解釋

2021-08-30 01:59:21 字數 1863 閱讀 9245

oa許可權管理分為:

人員管理

角色管理

模組管理

其實有這樣一些概念:

主體:使用者和角色可以稱為主體。

資源:就是可以進行crud的物件。

許可權:就是對資源的crud操作。

授權:就是對這種許可權的分配。

認證:就是查詢使用者是否有許可權。

使用者和角色的關係是多對多,這共同組成了主體。

模組是資源。

主體和資源的紐帶是acl(訪問控制列表),主體和acl之間是多對多關係,資源和acl之間也是多對多關係。acl裡面就記錄了使用者的許可權。

在資料庫上它就是乙個中間表的作用。

授權是這樣的:

授權分為兩種:

角色授權

對角色統一授權,繼承這種角色的使用者就自動擁有該角色所擁有的許可權,並且許可權分有優先順序,這樣兩種許可權如果之間發生衝突則取高優級。

使用者授權

對使用者進行單獨授權,這種情況必須在不繼承角色的情況下才能生效,並且此時只使用單獨授權的許可權。

每一次授權都是針對特定模組,而不是所有。

搜尋使用者所有授權過程是這樣的:

1、查詢使用者所有角色的許可權,按優先給從低到高,有重複的可以以高優先順序覆蓋。(存入map中,key是資源標識)

2、查詢使用者直接授予的許可權。查詢不繼承的許可權。

3、合併許可權。

4、再從中選擇具體的許可權(crud)。

認證過程是這樣的:

根據使用者標識和資源標識查詢acl例項

有例項:

檢視是否有確定授權

確定:返回授權

不確定(繼承):查詢使用者擁有角色列表,根據角色標識和資源標識查詢acl例項(迴圈)

沒有例項:

查詢使用者擁有角色列表,根據角色標識和資源標識查詢acl例項(迴圈)

(1)crud授權說明:

尚學堂oa系統中acl 中用 int 表示許可權是什麼意思

乙個 int 有32 位,用後4位表示crud 操作,位的取值1或0表示授權或不授權

/**

* acl例項跟主體和資源關聯

* 針對此例項進行授權:某種操作是否允許

* @param permission 只可以取值0,1,2,3

* @param yes true表示允許,false表示不允許

*/public void setpermission(int permission,boolean yes)else

}/**

* 獲得acl授權(獲得c/r/u/d的許可權是否允許或是否確定)

* @param permission c/r/u/d許可權

* @return 授權標識:允許/不允許/不確定

*/public int getpermission(int permission)

int tmp = 1;

tmp = tmp << permission;

//只要c/r/u/d中不全部為沒有許可權(0000),那麼與剛剛傳入的許可權相"&"是不會出現等於0的.

tmp &= aclstate;

if(tmp != 0)

return acl_no;

}

從你上面的意思看

0001為十進位制的1:擁有c許可權;

0010為十進位制的2:擁有r許可權;

0100為十進位制的4:擁有u許可權;

1000為十進位制的8:擁有d許可權;

也就是用最後四位來表示crud的許可權,1表示允許,0表示不允許。

那麼,crud的許可權就是1111,也就是十進位制的15;

減少乙個d操作也就是減少8,為7

如果再加上乙個d操作,那麼就加上8,又為15了.

js刪除元素 尚學堂drp中的問題

今天在學尚學堂drp的時候發現其中有點問題。但是找了半天就是不知道,最後一分析,原來是id重複的問題。主要是那老師的 也是有問題的,但是問題偶爾出現。其核心的js 如下 var rowindex 0 function addonelineonclick function deleterow rowt...

OA選型指南 企業選型OA系統中的價格誤區

oa選型指南 企業選型oa近年來,隨著oa軟體的迅速普及,市場 現了形形色色的oa品牌,並帶來了各樣各式的oa產品。使用者在其中的oa辦公系統中該如何進行選擇?由於主觀或客觀原因,使用者在選擇上就會出現一些誤區。接下來筆者將和各位一起分析 一種較為常見的誤區 誤區。通常來說,誤區主要分成兩類 一類是...

OA系統中的目標管理

一 目標管理的定義 目標是組織存在的前提要素,可以理解為是個人 部門或整個組織所期望的成果。目標需要管理,不然目標只能成為飄在空中的浮雲!所謂目標管理 mbo,management by objective 是指以目標為導向 以績效為標準 以計畫為橋梁 以任務為實現目標的腳印,使組織和個人取得最佳業...