/** * Get dynamic resources * * @return array */ public function getResources() { $em = $this->doctrine->getManager(); $permissions = $em->getRepository('Newscoop\\Entity\\Acl\\Permission')->createQueryBuilder('p')->select('p.name')->getQuery()->getArrayResult(); $resources = array(); foreach ($permissions as $permission) { try { list($resource, $action) = PermissionToAcl::translate($permission['name']); } catch (\InvalidArgumentException $e) { // ignore obsolete permissions continue; } if (!isset($resources[$resource])) { $resources[$resource] = array(); } $resources[$resource][] = $action; } return $resources; }
/** * @param mixed $classes * @return void */ public function setUp() { $this->doctrine = Zend_Registry::get('container')->getService('doctrine'); $this->em = $this->doctrine->getEntityManager(); $this->em->clear(); $tool = new SchemaTool($this->em); $tool->dropDatabase(); $classes = func_get_args(); if (!empty($classes)) { $metadataFactory = new ClassMetadataFactory(); $metadataFactory->setEntityManager($this->em); $metadataFactory->setCacheDriver(new ArrayCache()); $metadata = array(); foreach ((array) $classes as $class) { $metadata[] = $metadataFactory->getMetadataFor($class); } $tool->createSchema($metadata); } }
/** * Get dynamic resources * * @return array */ public function getResources() { $em = $this->doctrine->getManager(); $repository = $em->getRepository('Newscoop\\Entity\\Acl\\Permission'); $resources = array(); foreach ($repository->findAll() as $permission) { try { list($resource, $action) = PermissionToAcl::translate($permission); } catch (\InvalidArgumentException $e) { // ignore obsolete permissions continue; } if (!isset($resources[$resource])) { $resources[$resource] = array(); } $resources[$resource][] = $action; } return $resources; }