我正在尝试实现一个 ACL,我希望您能对哪种方法是最好的(更高性能的)方法提出意见:
是拒绝所有人访问并根据每个用户授予权限更好,还是默认授予所有人访问权限并删除权限更好。
尝试更具体一点,假设我有 3 个用户:SuperAdmin、ClientAdmin、BasicMember。
ClientAdmin管理员拥有与SuperAdmin 几乎相同的权限,例如查看系统中注册的每个用户,但他无法进行任何更改,只能“读取”。
此时,我创建了一个函数,其中列出了用户的所有权限,并在每个资源中检查 currentUserRole 和授权,如下所示:
$acl = $this->generateAcl($roleId, AclResourceBean::ENTER_DATA, 'read'));
所以..我想知道你是否最好检查一下:如果他有许可,showAction!或者如果他没有权限,hideAction。(例如:对于刚刚对其他用户具有读取权限的 ClientAdmin,我应该隐藏“编辑”按钮,还是总是隐藏更好,如果他没有权限,则显示!