【发布时间】:2015-11-20 21:25:12
【问题描述】:
目前我有两个选择来构建这个系统:
是否有更好的方法或仅取决于我的项目需求?
我倾向于选择 Hierarchical 只是因为简单。如果我这样做,有没有更好的方法来选择权限级别,也许使用二进制数?
选项 2 会有一些角色级别,而我会有一些权限级别编号。因此,当我创建Full Administrator 时,该角色将继承所有其他权限,因为那将是 4 级,而其他权限的数字将小于 4 级(或 4000)。
这是矫枉过正吗?
【问题讨论】:
-
不要把它变成层次结构。麻烦多于其价值。相反,只需创建 N 个不同的“角色”(每个角色都将其包含的权限表示为单独的属性)并为每个用户分配一个角色(或更多角色)。在多个角色的情况下,只需将权限扁平化为固定阶段即可。
-
我不明白为什么继承会很麻烦。似乎节省了大量的编码和实体访问。
-
因为它 1) 复杂得多 2) 在这种情况下增加的价值很少(如果有的话)。但无论如何,做你想做的事。
-
在 OOP 方法中,
user类扩展了它的配置文件子项。并发症在哪里? -
一点也不。你可以;但没有必要。我的意思是,即使使用#1(这是非分层基础),用户也没有理由只有一个角色 - 如果这个帐户可以使系统保持相当灵活且仍然简单。然而,权限聚合处理的是角色,而不是层次结构。
标签: php mysql permissions hierarchical role-based-access-control