组织团体/特权的框架/理论

时间:2011-08-24 20:14:27

标签: javascript database privileges

我正在编写一个Web应用程序,用户可以在其中创建组并添加其他用户。多个用户可以在多个组中。并且您可以从群体中获得某些特权或控制权,例如,能够看到内容。所有这些都类似于Facebook的群组功能。

我知道所有这一切都可以通过数据库跟踪中的几个表来完成,这些表位于哪个组中并相应地授予权限等。

我想知道是否有任何框架或理论或文章可以告知有关正确和最有效的方法

1 个答案:

答案 0 :(得分:0)

您想要的是ACL(访问控制列表)。有很多方法(例如,在UNIX / Linux世界中查看三步伪ACL,或在Windows Directory依赖环境中查看可继承的多级ACL)。

我使用非常简单的方法,我将在此分享:

每个“对象”(文章,照片,任何其他资源)都有一些预先定义的“动作”可以在其上进行(如“show”,“vote up”,“comment”等) 。通过每个对象和操作,我以这种方式定义ACL:

objectB.ActionX: all
objectC.ActionX: all !userA
objectD.Action1: group1 group2 userA !userB !group3

只是从左到右阅读ACL。每个“所有”“组”“用户”意味着允许特定对象的特定动作,而“!all”“!group”“!user”意味着不允许...

这种方法易于实施 - 并提供几乎无限的可能性:)

希望这会对你有所帮助:)。