2013-01-07 59 views
2

假設我正在構建一個Q &一個類似於stackoverflow的網站。我的網站有以下主要特點:需要關於基於用戶角色的設計的建議

:後可問題或答案

檔案:用戶的個人資料

悄悄話:商店用戶

的悄悄話

....

我想弄清楚如何設計用戶角色在我的系統中。 我想出了: (每個用戶只屬於一個角色)

enter image description here

它是確定設計這樣的用戶角色?如果沒有,任何人都可以給我一些建議嗎? 我正在使用MySQL,Struts 2.在Struts 2中,是否有用於基於角色的訪問控制(RBAC)的可用庫?

(我已閱讀Need some advice on my own Role Based Access Control (RBAC),但似乎並沒有解決我的問題)

回答

1

我在當前的struts2項目實施RBAC。 RBAC包含3件事情。用戶,角色和權限。

關係情況如下:

Role-Permission: M-M 
User-Role:M-M 

看到的,關係是這樣的,因爲,如果假設你定義角色的管理員,那麼它將需要像CAN_READ,CAN_WRITE,CAN_EXECUTE ...等權限。您還需要定義具有上述權限組合的角色,並且您還希望使用某些角色組合來創建用戶。 ex:

READER is role having permission CAN_READ. 
    WRITER is role having permission CAN_WRITE. 
    You can now have user with role READER & WRITER 
+0

感謝您的回答。但我認爲,如果用戶A屬於具有編輯權限的角色模式,那麼用戶A將擁有整個系統的編輯權限。在我的系統中,用戶A可能具有功能A的編輯權限,但只能讀取功能B的權限。 – ipkiss

+0

然後,您需要以這種方式定義您的權限Read_Fun_A,Write_Fun_A..Read_Fun_B,Write_Fun_B並相應地分配角色:)。看到更廣泛的,可擴展的範圍上述關係適合罰款。我在當前的項目中實施了它,這是一個企業系統,並且有許多基於角色的場景。 – DarkHorse

+0

好的,我會試試你的方式。謝謝。 – ipkiss