自然框架 之通用許可權(一) 簡介 資料結構

2021-09-05 21:00:46 字數 2533 閱讀 7543

這次要寫一整套的許可權方面的文章了,無論我的想法好與不好,先寫出來請大家來評判。這個系列我要詳細的說明我的許可權的思路、想法、實現方式、**和demo。可能有人會說,通用是達不到的,最多只能無限接近。恩,對於我來說,能夠無限接近就可以了,當然我知道如果要達到這個目標並不是一件容易的事情,有難度才有挑戰,才有意思。所以我會在許可權方面不斷的努力,不斷的無限接近通用。也請大家多多幫忙,畢竟乙個人的力量是有限的。

1、 簡介、資料庫的總體結構

2、 介紹人員表組

3、 介紹組織結構表組

4、 介紹角色表組

5、 介紹「專案自我描述表組」

6、 許可權到節點

7、 許可權到按鈕

8、 許可權到列表(表單、查詢)

9、 許可權的驗證

10、 資源方面的許可權

11、 角色管理的程式(給客戶用的)

12、 許可權下放

13、 個性化設定

a、 【自然框架】之通用許可權(外傳):雜談

簡介

(以下都是我的個人理解,不一定正確。如果有誤請多多指正。)

1、何謂許可權

我說一下我的理解,許可權從字面上看就是「權力的限制」。在軟體裡面,權力是什麼呢?就是一種操作、乙個功能點。那麼在軟體裡面許可權就可以理解為「對操作(功能)的限制」,說白了就是某人能不能做某件事情、某個操作。

2、何謂角色

角色是許可權的集合,乙個角色可以擁有若干的許可權,乙個人擁有了這個角色,那麼就擁有了這個角色所擁有的許可權。就是方便設定許可權的一種產物。

3、何謂使用者組

這個應該來自於windows作業系統吧,windows作業系統裡面有使用者和使用者組,給乙個使用者組設定好許可權後,使用者組裡面的使用者就具有了使用者組的許可權。我覺得應該和角色是乙個意思。所以我的通用許可權裡面只有角色,而沒有使用者組。

4、如何來通用?

我所說的「通用」,就是不寫死在**裡面,需求有變化的時候,盡量不用修改**就可以讓客戶滿意。我的思路就是把許可權和**分離開來,寫程式的時候不用關心許可權的事情,只要「切成小片」就可以了。而設定角色的時候也不用考慮程式具體是什麼樣子的,或者說不會由於程式不適合而需要再去改程式。

5、許可權不僅是操作,還有資源

前面說了,許可權是對某個操作的限制,如果只有操作那就好辦了,但是問題是除了操作之外還有資源。比如cms裡面的客戶資訊,業務員只能修改自己新增的客戶,不能修改和檢視其他人新增的客戶資訊;而業務一部經理可以檢視業務一部的客戶資訊,不能檢視其他業務部的客戶資訊;業務部的總經理可以檢視全部的客戶資訊。業務員的可以根據userid來過濾,而經理級別的就要用部門id來過濾了。這就比較麻煩,如何才能把資源的許可權給抽象出來呢?這個好像就不太容易了,而且這個還不是最麻煩的,更麻煩一點的是,比如張經理是業務一部的經理,但是他不僅可以檢視業務一部的客戶資訊,而且還可以檢視業務二部的客戶資訊,為什麼呢?因為他還兼任業務二部的經理(當然還可以是其他原因)。更複雜的情況相信還有很多。

另外我剛才說的只是資源許可權的一小部分,而我經歷的專案不多,而且也不是很複雜,所以這方面積累的經驗還遠遠不夠,經驗不夠就不好抽象了。本來想去某人那裡去學習點經驗的,但是某種原因不想去了。所以嘛,在這裡藉此機會,向大家發個請求:如果您遇到了資源許可權方面的需求,還請您把客戶的需求告訴我,我好積累更多的經驗(已知條件),好把資源許可權做得更好,謝謝大家了。當然了,我想出來的辦法都會寫到我的blog裡面的。

實現思路和資料庫設計

因為我是老腦筋了,面向資料庫的,所以最先想到的就是如何來設計資料庫,所以下面就說一下思路和資料庫。

許可權涉及到的部分:人員組織機構專案描述角色。其中角色是許可權自己的,而人員、組織機構、專案描述則是相關聯的部分。

「專案描述」是什麼? 

您可能會對專案描述比較陌生,這是什麼東東?這個對於我來說是非常重要的,如果沒有這個專案描述,我是做不到「通用」的。(注意:我是說我不用專案描述做不到通用,並不是說其他人也都做不到。)

我是喜歡使用資料庫的,所以這個許可權我也用資料庫的形式來體現了。先畫乙個圖來看看上面四個部分的關係。

下面是四個部分裡面的表的關係。

【人員】 

【角色】 

【組織機構】 

【專案描述】  

自然框架 之通用許可權(一) 簡介 資料結構

這次要寫一整套的許可權方面的文章了,無論我的想法好與不好,先寫出來請大家來評判。這個系列我要詳細的說明我的許可權的思路 想法 實現方式 和demo。可能有人會說,通用是達不到的,最多只能無限接近。恩,對於我來說,能夠無限接近就可以了,當然我知道如果要達到這個目標並不是一件容易的事情,有難度才有挑戰,...

自然框架 之通用許可權(九) 許可權的驗證

繼續,這是第九章了。本來這張應該好好寫的,不過還是先簡單介紹一下吧,以後有空再補上詳細說明吧。1 簡介 資料庫的總體結構 2 介紹人員表組 3 介紹組織結構表組 4 介紹角色表組 5 介紹 專案自我描述表組 6 許可權到節點 7 許可權到按鈕 8 許可權到列表 表單 查詢 9 許可權的驗證 10 資...

通用許可權管理設計 之資料許可權

本文將對這種設計思想作進一步的擴充套件,介紹資料許可權的設計方案。許可權控制可以理解,分為這幾種 功能許可權 能做什麼的問題,如增加產品。資料許可權 能看到哪些資料的問題,如檢視本人的所有訂單。字段許可權 能看到哪些資訊的問題,如 商賬戶,看不到角色 部門等資訊。上面提到的那種設計就是 功能許可權 ...