如何使用Symfony ACL获取具有实体权限的所有用户?

时间:2017-04-16 15:43:07

标签: php symfony acl symfony-3.2

我有一位能够编写多个课程的用户,如何列出用户可以使用Symfony ACL编辑的所有课程?我浏览了文档,只能找到如何检查用户是否可以加载已加载的特定实体。我希望能够在用户的个人资料页面上放置一个课程列表,其中包含用户可以编辑的每个课程名称。如果你不能有替代品吗?我已经检查了选民,我认为我不能实现我想要做的事情。

例如,我在创建课程时为用户指定了所有者掩码。

$aclProvider = $this->get('security.acl.provider');
$objectIdentity = ObjectIdentity::fromDomainObject($course);
$acl = $aclProvider->createAcl($objectIdentity);

$tokenStorage = $this->get('security.token_storage');
$user = $tokenStorage->getToken()->getUser();
$securityIdentity = UserSecurityIdentity::fromAccount($user);

$acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER);
$aclProvider->updateAcl($acl);

在个人资料页面上,我希望能够执行类似

的操作
$courses = $this->getDoctrine()->getRepository('AppBundle:Course')
    ->findAllWhereUserCanEdit($user);

0 个答案:

没有答案