我正在建設一個訪問控制系統,作爲我正在開發的Web框架的一部分。我想讓它變得超級靈活,真棒。你能通過提供對我設計的意見和見解來幫助我嗎?這裏是我的工作至今(我的具體問題是在底部):建立一個更好的訪問控制系統
用戶
- 用戶有一個用戶名(32個字符,無空格)和密碼
- 用戶具有一個或多個必須驗證
- 用戶可以登錄使用無論是他們的用戶名或任何他們的電子郵件地址
- 用戶可能被關聯到零個或多個賬戶 的電子郵件地址
賬戶
- 帳戶代表一個或多個用戶
- 每個用戶可以擁有一個帳戶特定權限或角色(例如,帳戶所有者或「可以添加新用戶」)
- 所有賬戶綁定到一個帳戶類型
賬戶類型
種- 帳戶類型具有零級或多個帳戶類型的角色
- 帳戶類型具有零個或多個帳戶類型特點
帳戶類型角色
- 例如, 「所有者」, 「管理員」,「超級用戶」,「訪客」等。
- 帳戶類型角色是帳戶類型權限的集合 個
帳戶類型權限
- 帳戶類型權限是在系統具體行動應用程序邏輯將驗證對
- 他們可能會引用一個父類,所以它們可以分層次進行分組
- 例如:
- 「用戶管理」
- 「添加用戶」
- 「刪除用戶」
- 「用戶管理」
- 這些權限可以爲一個帳戶類型的特徵
賬戶類型特點層
- 帳戶類型的功能可以在一個賬戶被激活給它更多的權限
- 例如,「標準賬戶」或「優利賬戶」
- 這些功能,如果一個帳戶被激活,就會給對系統帳戶擁有者更多的機會
- 當它們被激活或停用,對定期或按需計費他們跟蹤
任務離子
對用戶操作進行應用程序邏輯檢查的最佳方法是什麼?我正在考慮將所有用戶的權限存儲在會話的對象中(這需要註銷/登錄才能刷新權限,我不喜歡 - 實時權限管理的任何想法?):
{
"All Permissions": {
"User Management": {
"Add User",
"Delete User"
},
"Premium Account": {
"Download Files",
"Upload Files"
},
}
}
然後我會聲明系統中特定操作所需的權限。可能是這樣的:
Permission::require('Add User');
如果聲明的權限不在用戶權限對象中,請求將失敗。這似乎對每個用戶的行動激烈,雖然。另外,如果另一個權限子集具有字符串「添加用戶」?
在此先感謝您的幫助!
這是視頻我也鏈接到我的回答 – 2010-08-18 21:28:19
是的非常限制我需要更多的控制。 – 2016-05-27 15:09:43