我一直在努力爲我們公司開發內部員工門戶。有部門,工作等級,工作區域,角色(用戶,編輯者,管理員,超級管理員等)和特殊組(高級管理人員等)進行用戶分組。像Facebook Sharings(靈活ACL)的高級定位數據庫設計
用戶必須有一個(只有一個)部門。 用戶必須有一個(只有一個)工作成績。 用戶必須在至少一個區域工作。 用戶必須有一個(只有一個)角色。 用戶可能有一個或多個特殊組。
工作成績和角色是分層的(一個等級或角色可能是另一個的繼承),但其他的不是。
用戶將只看到允許的菜單並訪問允許的路線。
用戶還將選擇在發佈新內容時哪些用戶可以查看它。 例如: 組合1 :(IT或財務部門)和(工作級別是9,10,11之一)和(面積是1,5,8之一)和(獨家特別小組是1.5, 8)除了用戶ID = 1 組合2 :(人力資源部門)和(工作級別爲11)和user_id = 3,4,5
組合可以像組合1和組合2那樣相關爲AND/OR
所以,會有很多內容,每個內容都會有不同的組權限。我嘗試創建數據庫模式,但很難獲取用戶登錄時看到的所有內容。序列化的數據對於在db中保存組合集是很好的,但對於序列化的數據來說看起來是不可能的。在這個問題上使用MongoDB有沒有好處?我怎樣才能在表中保存組/用戶權限的組合?
我研究了大量的ACL和RBAC示例,但找不到最佳解決方案。請幫忙。
順便說一句,我使用Laravel框架。
謝謝。
的可能的複製[複合右傾系統:ACL,RBAC多什麼(http://stackoverflow.com/questions/13580702/complex-righty-system-acl-rbac-還有更多) –