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