1

我有一个能够编辑多个课程的用户,我如何列出用户可以使用 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);
4

0 回答 0