最近用到了redglove permission許可權管理系統,將自己的設計思路以及開發過程一起分享給大家,希望大家能多提意見。
首先,我來介紹一下許可權系統的
主要組成部分,
它主要由
模組許可權
(功能模組
)、角色許可權、使用者許可權
三大部分組成,下面將詳細介紹一下三大許可權的作用以及
它們互相存在的依賴性
。模組許可權部份:
說白一點就是管理系統中的功能模組
,而在這些模組中,它們有著各式各樣的具體的操作,這些具體的操作許可權就是模組許可權,例如現新加了乙個使用者管理的功能模組,在這個
模組設計中需要進行瀏覽、新增、
修改、刪除、審核、查詢(使用者管理)等一些具體的操作,在系統執行的過程中,
不是所有的使用者都會擁有這些許可權的
(功能的)
,根據需
求(需要得到功能)
,就產生了下
面的角色許可權。
角色許可權部分:
它就是乙個身份(管理員/員工),擁有這個身份的使用者在系統中能做些什麼,不能做些什麼,
使用者都得依照這個身份,無法過界,這也是乙個許可權的範圍限定,
在乙個管理系統有很多的使用者,我們不能將模組中
的許可權逐個的分配給使用者,現
在角色的出現就解決了這個問題,它就像乙個許可權組
,將模組的許可權指派給角色,讓擁有該角色的使用者可以擁有對模組對應的操作許可權,然而,乙個系統中使用者可能會成千上萬不
等,但我想角色最多不過幾十個,將模組許可權授權給幾十個角色比授權給上萬個使用者輕鬆多了,角色雖然是許可權組,有限定的作用範圍,但是也有會出現意外情況的時候,如果乙個使用者有操作使用者模組的角色,
但對它的有個特殊的要求,就是不能操作使用者模組中的刪除或其它功能,還有就是它還有操作另外模組的許可權,而它擁有的角色只能訪問使用者模組,怎麼辦呢?難道要為這乙個使用者再建立乙個角色嗎?我的回答
是no.
使用者許可權:
我想很多朋友以前在開發管理系統時都用過這種許可權模式,雖然這種方法比較原始,但它能解決我們上面所遇到的問題,當然,還需要做一些小小的改進,在角色中,我們只告訴使用者能做什麼,沒有告訴的就不能做,
以角色做許可權批量判斷這點已經夠了,而使用者單獨的許可權判斷有點特殊,它得跳出角色。它的許可權優先於角色的許可權,它擁有對某許可權允許和禁止操作的功能,例如乙個使用者的角色許可權可以操作使用者模組所有的功
能,而該使用者擁有了該模組某一功能的禁止許可權,那該使用者不能對這個模組進行該功能操作,反之,使用者角色沒有授權這個模組功能,而使用者許可權被授予了這個功能模組的允許許可權,那它就能操作該功能,流程圖如
下:許可權管理的**實現請看下篇部落格~~~~~~~~
《玩轉細粒度許可權管理》 三,使用者角色許可權RBCA
第三章 使用者角色許可權rbca 第一章介紹了專業細粒度許可權管理軟體 metadmin 的安裝。第二章講解了對於 web 頁面的控制。哪些頁面需要登入才能訪問,哪些頁面不需要登入就能訪問。需要登入的頁面,又如何頁面訪問許可權呢?即具有什麼樣角色的人才能訪問。本章詳細講解使用者角色許可權關係。這也就...
Linux基礎 使用者許可權,組管理及使用者管理
1 基本概念 許可權 縮寫數字代號讀r 4寫w2 執行x1無許可權 0 2 ls l檢視許可權資訊 如圖我們可以看到以上列出三個檔案的資訊,從左到右三個紅框的資訊分別是許可權資訊,訪問該檔案有幾種方式,檔案擁有者和檔案的組 如圖,紅框將資訊分為四部分,第一部分區分檔案還是目錄,檔案就是 目錄就是d ...
MySQL基礎之使用者和許可權管理
許可權表 user表 記錄允許連線到伺服器的賬號資訊,裡面的許可權是全域性的 使用者列 使用者列包含三個字段,user,host,password,user和host為user表的聯合主鍵,連線伺服器必須三個欄位都匹配 許可權列 如上圖enum n y y表示有許可權n表示無許可權 安全列資源控制列...