天天看點

一步步教你如何用瘋狂.NET架構中的通用權限系統 -- (使用者 - 角色 - 操作權限 - 子產品菜單)之間的關聯關系

有時候把這個權限徹底吃透,也是蠻頭疼的事情。

【第一部分】

使用者 - 角色 之間的關系比較好梳理, 一個使用者可以在多個角色裡,一個角色裡可以有多個使用者,是(多對多的關系)

需要

有使用者表 Base_User

有角色表 Base_Role

有使用者-角色關聯關系表 Base_UserRole

【第二部分】

使用者 - 操作權限之間的關系就是, 這個使用者到底有哪些操作權限?

角色 - 操作權限之間的關系就是, 這個角色到底有那些操作權限?

操作權限就不隻是添加、删除、修改權限,那其實是一個技術思維上的權限而已,真正的業務權限就是:“誰有人事管理權限,誰有項目管理權限,誰有管理客戶的權限”,是一個很籠統的業務上的權限,而不是所謂的 誰有添加、删除、修改的權限這麼細膩,很多時候一個軟體就4個人,4個人是個崗位,隻需要有4種權限就可以了,“誰負責倉庫?誰負責财務?誰負責業務?誰是老闆”也就這麼一回事情,不用搞得那麼複雜。

雖然從規範的角度來講,權限都應該先設定給角色,但是國内應用,大多是直接賦予某個操作員哪些權限,而且那麼多的角色名稱也難想出來,比較難定義好分工的崗位,明确的角色劃分等,而且很小的應用程式就看如何見效最快,其他都等以後再優化配置管理了。

【第三部分】

使用者 - 子產品菜單之間的關系就是,哪個使用者能通路那些子產品? 這裡延伸出了有一個系統預設的“子產品通路權限”,誰對哪些子產品有相應的子產品通路權限,是一個資料集範圍權限的概念,當然 角色 - 子產品菜單關系表的邏輯也是一樣的。

操作權限定義表 Base_PermissionItem 其中需要有一個系統預設的“子產品通路權限”

系統裡有哪些菜單子產品 Base_Module,其實是一種資源,一種樹形資源,對哪些資源有什麼權限。

什麼對象對什麼有什麼權限?的思維存儲了資料範圍權限 Base_ResourcePermissionScope

當然還會涉及到 使用者表 Base_User, 角色表Base_Role。

先要開啟主程式中的,是否采用配置菜單權限的開關,因為很簡單的管理系統,并不需要設定菜單權限就可以了。

【第四部分】

還有一種邏輯是,哪個菜單,可以由哪些使用者、哪些角色通路,這其實是第三部分的另外一種展示方式,資料的關聯關系與邏輯關系,其實是跟第三部分是完全一樣的。

【第五部分】

操作權限 - 子產品菜單,使用者角色-操作權限 之間的關聯關系,例如使用者有某些操作權限,那是不是還可以了解,若管理系統中有某個操作權限後是否預設可以通路某些菜單?完全是可以的,是以這時候有 操作權限-子產品菜單之間的關聯關系,就是由于有了某個操作權限,導緻可以通路哪些子產品菜單。這個預設關系系統裡設定好後,隻要使用者或者角色有相應的操作權限,那就可以有與之對應的子產品菜單的通路權限了。

将權限管理、工作流管理做到我能力的極緻,一個人隻能做好那麼很少的幾件事情。

吉日嘎拉(蒙古語為吉祥如意),2000年畢業于黑龍江大學計算機系軟體專業,目前定居杭州,典型的IT軟體土鼈一個,外号“軟體包工頭”。

通用權限管理系統元件(GPM - General Permissions Manager)自2003年開始釋出,目前是國内注冊使用者和免費盜版使用者最多的權限管理系統,是各種資訊管理系統開發中徹底的權限解決方案。本元件支援多種主流資料庫(Oracle、sqlsever、db2、mysql),功能強大,使用友善,代碼簡潔,思路嚴謹,被廣大支援者稱為權限管理系統中的“走火入魔級權限管理系統”。

精心維護通用權限管理系統元件(GPM - General Permissions Manager)有8年多,3年的不斷推廣,20萬行經典的業務邏輯積累,經過上萬次的調試修正,經曆了四百個付費客戶,上百軟體公司的實戰開發。

11年以上開發經驗,外企工作5年,上市公司3年,獨立經營軟體公司2年,主持研發部門管理工作4年以上。

将權限管理、工作流做到我能力的極緻,一個人隻能做好那麼很少的幾件事情。

QQ:252056973,Mail:[email protected]

一步步教你如何用瘋狂.NET架構中的通用權限系統 -- (使用者 - 角色 - 操作權限 - 子產品菜單)之間的關聯關系

通用權限管理子產品的嚴謹設計定位、精心編碼實作、不斷維護推廣、持續優化改進,主要是為了實作一個可以高度重複利用勞動成果的工具軟體并有償提供給所需的人們,另想成為國人值得驕傲的知名軟體功能子產品。

可供國内管理類開發人員在日常工作中進行靈活二次開發利用的子產品,開發管理類軟體的必備工具之一,我們的目标就是讓程式員早點兒回家休息。

本文轉自jirigala_bao 51CTO部落格,原文連結:http://blog.51cto.com/jirigala/806851

繼續閱讀