对象标识已经与acl相关联

时间:2013-07-12 20:27:28

标签: php symfony acl event-listener

我尝试为ACL管理创建3个函数。

public function postPersist(LifeCycleEventArgs $event){
    $em = $event->getEntity();
    $entity = $event->getEntity();

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

    try {
        $acl = $aclProvider->findAcl($objectIdentity);
    } catch (AclNotFoundException $e) {
        $acl = $aclProvider->createAcl($objectIdentity);
    }

    $securityContext = $this->container->get('security.context');
    $token = $securityContext->getToken();
    $securityIdentity = UserSecurityIdentity::fromToken($token);

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

每当一个用户创建一些东西时,ACL就由服务创建。(Eventlistener)

但现在我有一点问题。 我删除漏洞MySQL-DB,每当我创建一个新的实体时,我都会收到以下错误信息。

  

给定的对象标识没有ACL。

然后我从这个函数中删除try和catch,只让createACL,然后我得到

  

对象标识已与acl

关联

我不明白这一点,当然我的数据库是空的......

坦克为你提供帮助。

0 个答案:

没有答案