src/Kunstmaan/AdminBundle/Helper/Security/Acl/AclHelper.php
public function getAllowedEntityIds(PermissionDefinition $permissionDef)
    {
        $rootEntity = $permissionDef->getEntity();
        if (empty($rootEntity)) {
            throw new InvalidArgumentException('You have to provide an entity class name!');
        }
        $builder = new MaskBuilder();
        foreach ($permissionDef->getPermissions() as $permission) {
            $mask = constant(get_class($builder) . '::MASK_' . strtoupper($permission));
            $builder->add($mask);
        }

        $query = new Query($this->em);
        $query->setHint('acl.mask', $builder->get());
        $query->setHint('acl.root.entity', $rootEntity);
        $sql = $this->getPermittedAclIdsSQLForUser($query);

        $rsm = new ResultSetMapping();
        $rsm->addScalarResult('id', 'id');
        $nativeQuery = $this->em->createNativeQuery($sql, $rsm);

        $transform = function ($item) {
            return $item['id'];
        };
        $result = array_map($transform, $nativeQuery->getScalarResult());

        return $result;
    }
public function getAllowedEntityIds(PermissionDefinition $permissionDef)
    {
        $rootEntity = $permissionDef->getEntity();
        if (empty($rootEntity)) {
            throw new InvalidArgumentException('You have to provide an entity class name!');
        }
        $builder = new MaskBuilder();
        foreach ($permissionDef->getPermissions() as $permission) {
            $mask = constant(get_class($builder) . '::MASK_' . strtoupper($permission));
            $builder->add($mask);
        }

        $query = new Query($this->em);
        $query->setHint('acl.mask', $builder->get());
        $query->setHint('acl.root.entity', $rootEntity);
        $sql = $this->getPermittedAclIdsSQLForUser($query);

        $rsm = new ResultSetMapping();
        $rsm->addScalarResult('id', 'id');
        $nativeQuery = $this->em->createNativeQuery($sql, $rsm);

        $transform = function ($item) {
            return $item['id'];
        };
        $result = array_map($transform, $nativeQuery->getScalarResult());

        return $result;
    }
public function getAllowedEntityIds ( PermissionDefinition $ permissionDef ) { $ rootEntity = $ permissionDef -> getEntity ( ) ; if ( empty ( $ rootEntity ) ) { throw new InvalidArgumentException ( 'You have to provide an entity class name!' ) ; } $ builder = new MaskBuilder ( ) ; foreach ( $ permissionDef -> getPermissions ( ) as $ permission ) { $ mask = constant ( get_class ( $ builder ) . '::MASK_' . strtoupper ( $ permission ) ) ; $ builder -> add ( $ mask ) ; } $ query = new Query ( $ this -> em ) ; $ query -> setHint ( 'acl.mask' , $ builder -> get ( ) ) ; $ query -> setHint ( 'acl.root.entity' , $ rootEntity ) ; $ sql = $ this -> getPermittedAclIdsSQLForUser ( $ query ) ; $ rsm = new ResultSetMapping ( ) ; $ rsm -> addScalarResult ( 'id' , 'id' ) ; $ nativeQuery = $ this -> em -> createNativeQuery ( $ sql , $ rsm ) ; $ transform = function ( $ item ) { return $ item [ 'id' ] ; } ; $ result = array_map ( $ transform , $ nativeQuery -> getScalarResult ( ) ) ; return $ result ; }
Returns valid IDs for a specific entity with ACL restrictions for current user applied

@param PermissionDefinition $permissionDef

@throws InvalidArgumentException

@return array
Returns valid IDs for a specific entity with ACL restrictions for current user applied