我正在使用 Symfony2 构建一个 Web 应用程序。我一直在实现 ACL 模块,它运行良好,但在尝试制作面板来管理权限时偶然发现了一个问题。
所以我作为用户可以创建一个项目并在他的项目中添加“参与者”。参与者可以具有三种不同的访问类型,它们是来自掩码生成器的MASK_VIEW
掩码MASK_EDIT
、、、MASK_OPERATOR
。使用ProblematicAclManagerBundle
我们可以通过这样做轻松地添加对这些的访问:
$this->aclManager->addObjectPermission($project, $mask, $user);
问题是,当您想要编辑项目时,您必须能够列出具有当前访问权限的用户。该功能isGranted
可以让您获得当前登录用户的用户权限,但不能获得其他用户的权限。与addXXXX
有三个参数的函数相比,isGranted
只有两个参数,安全对象和掩码。因此,您无法使用此功能找到其他用户的权限。
有没有办法获得其他用户的内置权限?还是我必须构建自己的 SQL 查询来从 acl 表中提取数据?