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