1

我正在尝试实现一个 ACL,我希望您能对哪种方法是最好的(更高性能的)方法提出意见:

是拒绝所有人访问并根据每个用户授予权限更好,还是默认授予所有人访问权限并删除权限更好。

尝试更具体一点,假设我有 3 个用户:SuperAdmin、ClientAdmin、BasicMember。

ClientAdmin管理员拥有与SuperAdmin 几乎相同的权限,例如查看系统中注册的每个用户,但他无法进行任何更改,只能“读取”。

此时,我创建了一个函数,其中列出了用户的所有权限,并在每个资源中检查 currentUserRole 和授权,如下所示:

$acl = $this->generateAcl($roleId, AclResourceBean::ENTER_DATA, 'read'));

所以..我想知道你是否最好检查一下:如果他有许可,showAction!或者如果他没有权限,hideAction。(例如:对于刚刚对其他用户具有读取权限的 ClientAdmin,我应该隐藏“编辑”按钮,还是总是隐藏更好,如果他没有权限,则显示!

4

1 回答 1

5

我认为这主要取决于您的应用程序。但我通常倾向于拒绝所有并授予访问权限。这样一来,您就不太可能忘记访问权限并将人们放在不应该出现的地方。

于 2012-06-19T09:01:08.370 回答