Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组织团体/特权的框架/理论_Javascript_Database_Privileges - Fatal编程技术网

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

Javascript 组织团体/特权的框架/理论,javascript,database,privileges,Javascript,Database,Privileges,我正在编写一个web应用程序,用户可以在其中创建组并将其他用户添加到中。多个用户可以在多个组中。在一个小组中,你会获得某些特权或控制权,例如,能够看到内容。所有这些都类似于Facebook的群组功能 我知道所有这些都可以通过数据库中的两个表来完成,跟踪谁在哪个组中,并相应地授予特权,等等 我想知道是否有任何框架、理论或文章可以告诉我们正确和最有效的方法您想要的是所谓的ACL(访问控制列表)。有许多方法可以实现这一点(例如,查看UNIX/linux世界中的三步伪ACL,或Windows目录相关环境

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

我知道所有这些都可以通过数据库中的两个表来完成,跟踪谁在哪个组中,并相应地授予特权,等等


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

您想要的是所谓的ACL(访问控制列表)。有许多方法可以实现这一点(例如,查看UNIX/linux世界中的三步伪ACL,或Windows目录相关环境中的可继承多级ACL)

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

每个“对象”(文章、照片、任何其他资源)都有一些预定义的“操作”,可以对其进行操作(如“显示”、“投票”、“评论”等)。通过每个对象和操作,我以以下方式定义ACL:

objectB.ActionX: all
objectC.ActionX: all !userA
objectD.Action1: group1 group2 userA !userB !group3
ACL只是从左向右读取。每个“all”“group”“user”表示允许对特定对象执行特定操作,而“!all”“!group”“!user”表示不允许

这种方法很容易实现,并且提供了几乎无限的可能性:)


希望这能帮助您:)

投票迁移到Exchange。好问题,但答案是主观的。谢谢。它回答了我的部分问题。如何在组中组织用户?在我的示例中,每个组可能包含一些用户,一些其他组,甚至groupA可能被定义为“groupB!groupC userA”-因此,这允许真正高级的用户权限处理,对于任何软件来说,“计算”权限都是微不足道的。