/** * @group ZF-8468 */ public function testgetResources() { $this->assertEquals(array(), $this->_acl->getResources()); $this->_acl->addResource(new Resource\GenericResource('someResource')); $this->_acl->addResource(new Resource\GenericResource('someOtherResource')); $expected = array('someResource', 'someOtherResource'); $this->assertEquals($expected, $this->_acl->getResources()); }
public function initAcl(MvcEvent $e) { $application = $e->getApplication(); $sm = $application->getServiceManager(); $acl = new Acl(); $roles = $sm->get("Application\\Model\\RolesBO"); $recursos = $sm->get("Application\\Model\\RecursosBO"); $rolesRecursos = $sm->get("Application\\Model\\RolesRecursosBO"); $usuarios = $sm->get("Application\\Model\\UsuariosBO"); // Se listan todos los recursos y se los agrega a la ACL foreach ($recursos->obtenerTodos() as $recurso) { if (!$acl->hasResource($recurso->getRecursosID())) { $genericResource = new GenericResource($recurso->getRecursosID()); $acl->addResource($genericResource); } } // Se registra el rol en la ACL $sesion = new Container("CoreAppSesion"); if (!$acl->hasRole($sesion->user_rol_id)) { $genericRole = new GenericRole($sesion->user_rol_id); $acl->addRole($genericRole); } $services = $application->getServiceManager(); // obtenemos todos los recuersosque tiene la ACL foreach ($acl->getResources() as $resource) { // Obtenemos los recursos disponibles para el rol foreach ($rolesRecursos->obtenerRecursosPorRol($sesion->user_rol_id) as $recursoAsignado) { // Si el recurso asignado es el mismo recurso de la ACL lo permitimos if ($resource == $recursoAsignado->getAppRecursosID()) { $acl->allow($genericRole, $acl->getResource($resource)); } } } // Si el recurso no esta permitido lo denegamos foreach ($acl->getResources() as $resource) { if (!$acl->isAllowed($genericRole, $acl->getResource($resource))) { $acl->deny($genericRole, $acl->getResource($resource)); } } $this->acl = $acl; }