久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用戶和角色權(quán)限的設(shè)計

 木有銀 2011-10-19

[Title ] 關(guān)于用戶角色權(quán)限管理一點想法
[Author] Pizer.Chen
[Email ] [email protected] | [email protected]
[Date ] 2002-11-3

----------------------------------------------------------------------------
我以前設(shè)計過一個權(quán)限系統(tǒng)的模型,,但是我沒有實現(xiàn),
可以說出來,,大家討論一下,。

我認為一個系統(tǒng)的權(quán)限部分應(yīng)該由以下四個部分組成:

[*] Resource
[*] Privilege
[*] Role
[*] User

另外,一個系統(tǒng)中最少有這么幾個角色:
[*] Creator,, 也可以稱做 Programmer.
[*] Administrator, 超級用戶
[*] General User

----------------------
權(quán)限各部分之間的關(guān)系:
----------------------
1. Resource 就是系統(tǒng)的資源,,比如部門新聞,文檔等各種可以被提供給用戶訪問的對象.

2. Privilege 是 Resource Related 的權(quán)限,。
什么意思,?就是指,這個權(quán)限是綁定在特定的資源實例上的,。
比如說部門新聞的發(fā)布權(quán)限,,叫做"部門新聞發(fā)布權(quán)限".
這就表明,該 Privilege 是一個發(fā)布權(quán)限,,而且是針對部門新聞這種資源的一種發(fā)布權(quán)限,。
我認為,Privilege 是由 Creator 在做開發(fā)時就確定的,。

3. Role, 是角色,,擁有一定數(shù)量的權(quán)限。

4. User, 與 Role 相關(guān),。在我設(shè)計的系統(tǒng)里,User是不能與 Privilege 直接相關(guān)的,,
User 要擁有對某種資源的權(quán)限,,必須通過Role去關(guān)聯(lián).

----------------------
系統(tǒng)大串聯(lián):(^_^)
----------------------
下面簡單介紹一下,一個權(quán)限從開發(fā)到使用的過程.

1. Creator 創(chuàng)造 Privilege, Creator 在設(shè)計和實現(xiàn)系統(tǒng)時會劃分,,一個子系統(tǒng)或稱為模塊,,
應(yīng)該有哪些權(quán)限. 拿新聞這一塊來說,可能應(yīng)該有:
[*] 發(fā)布權(quán)限(publish)
[*] 修改權(quán)限(modify)
[*] 審核權(quán)限(review)
[*] 瀏覽權(quán)限(visit)
.......
這里完成的是 Privilege 與 Resource 的對象申明,,并沒有真正將 Privilege 與具體
Resource 實例聯(lián)系在一起.

2. Administrator 指定 Privilege 與 Resource Instance 的關(guān)聯(lián).
在這一步,, 權(quán)限真正與資源實例聯(lián)系到了一起, 產(chǎn)生了 Privilege Instance,。
比如,Administrator 創(chuàng)建了一個叫做 "部門新聞" 的Resource Instance.
然后將發(fā)布權(quán)限與這個資源相關(guān)聯(lián),,產(chǎn)生出 "部門新聞發(fā)布權(quán)限" 這個 Privilege Instance.

3. Administrator 創(chuàng)建一個角色,,稱做 "部門新聞發(fā)布者".

4. Administrator 將 "部門新聞發(fā)布權(quán)限" 賦予 "部門新聞發(fā)布者".

5. Administrator 從用戶列表中選取一個或多個用戶,
然后給這些用戶賦予 "部門新聞發(fā)布者" 的角色

6. User 進到系統(tǒng),,在它的可訪問資源列表上,,會出現(xiàn)"部門新聞發(fā)布"的鏈接.

7. User 點擊 "部門新聞發(fā)布"的鏈接, 根據(jù) Creator 的實現(xiàn),系統(tǒng)會檢查
[1] 當前用戶是否擁有發(fā)布權(quán)限
[2] 當前用戶的發(fā)布權(quán)限是否與能操作正在訪問的資源.

----------------------
結(jié)束語
----------------------
這是我一次在飛機場等飛機時突然設(shè)計出來的東西,。因為沒有具體實現(xiàn),,
而且也可能因為時間倉促,沒有想得很透徹,,希望寫出來大家討論一下,。
具體實現(xiàn)上的技術(shù)問題,我也想過,,我覺得應(yīng)該已經(jīng)想通,,但是介于時間關(guān)系,
這里寫不了啦,,大家可以談?wù)効捶?.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
你的方案應(yīng)該行得通,,但是我覺得可以再簡化精練一點。
我的思路是這樣,。

用戶角色權(quán)限,,就設(shè)定用戶user和角色role的對應(yīng)關(guān)系,user還包括用戶組group, user和group的關(guān)系樹形結(jié)構(gòu)的關(guān)系,。

所以,,在系統(tǒng)權(quán)限這里,我們就可以圍繞角色開始定義,,拋開user或組的糾纏,。如你所說resource 和function(Privilege)組合成一個角色。

提供一個強大的用戶權(quán)限定制系統(tǒng),,就要在上面兩個方面提供定制:
1.可以自行增加 刪除 管理resource和function之間關(guān)系,。
2.可以自行設(shè)定用戶user和角色role的對應(yīng)關(guān)系。

以你的部門新聞發(fā)布為例:
1.某一個新聞為resource . 發(fā)布權(quán)限(publish) 修改權(quán)限(modify)等為function(Privilege),,先設(shè)定好這兩者關(guān)系,,比如新聞+發(fā)布權(quán)限 作為一條記錄存入數(shù)據(jù)庫,ID就是roleID,這條記錄其實就是一個角色,。

2.設(shè)定user和roleID角色之間的關(guān)系,,哪些user包含這個角色role。

通過上面兩步設(shè)置,權(quán)限系統(tǒng)框架基本設(shè)定,,一個用戶登陸進來,,可以按上面規(guī)則檢查一下。

我這里與你的區(qū)別就是,,權(quán)限部分應(yīng)該由以下部分組成:

Role--|-Resource
|_Privilege
User

大家可以討論一下,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多