我正在編寫一個Web應用程序,用戶可以在其中創建組並添加其他用戶。多個用戶可以在多個組中。而且您還可以通過某個羣組獲得某些特權或控制權,例如,可以查看內容。所有這些都與Facebook的羣組功能類似。組織團體/特權的框架/理論
我知道這一切可以在DB跟蹤誰在哪個組,並相應地授予權限的情侶表來完成,等
我想知道有沒有告知有關的任何框架或理論或文章正確和最有效的方式做到這一點
我正在編寫一個Web應用程序,用戶可以在其中創建組並添加其他用戶。多個用戶可以在多個組中。而且您還可以通過某個羣組獲得某些特權或控制權,例如,可以查看內容。所有這些都與Facebook的羣組功能類似。組織團體/特權的框架/理論
我知道這一切可以在DB跟蹤誰在哪個組,並相應地授予權限的情侶表來完成,等
我想知道有沒有告知有關的任何框架或理論或文章正確和最有效的方式做到這一點
你想要什麼叫做ACL(訪問控制列表)。有很多方法(例如,查看UNIX/linux世界中的三步僞ACL,或者Windows目錄相關環境中的可繼承多級ACL)。
我用很簡單的方法,我會在這裏分享:
每一個「對象」(文章,照片,任何其他資源),具有可進行一些預先定義的「動作」它(如「顯示」,「投票」,「評論」等)。通過每個對象和動作,我用這種方式定義ACL:
objectB.ActionX: all
objectC.ActionX: all !userA
objectD.Action1: group1 group2 userA !userB !group3
ACL只是從左到右閱讀。每個「全部」「組」「用戶」意味着允許特定對象的特定動作,而「!全部」「!組」「!用戶」意味着不允許該動作...
這種方法很容易實現 - 幾乎無限的可能性:)
希望這會幫助你:)
謝謝。它回答了我的問題的一部分。如何組織組織用戶? –
在我的示例中,每個組可能包含一些用戶,一些其他組,甚至groupA可能被定義爲「groupB!groupC userA」 - 因此,允許真正高級的用戶權限處理,對於「計算」任何軟件。 –
投票轉移到程序員堆棧交換。好問題,但答案是主觀的。 –