/** * Ensures that basic addition and retrieval of a single Resource works * * @group ZF-1167 */ public function testResourceAddAndGetOneWithAddResourceMethod() { $resourceArea = new Resource\GenericResource('area'); $resource = $this->_acl->addResource($resourceArea)->getResource($resourceArea->getResourceId()); $this->assertTrue($resourceArea === $resource); $resource = $this->_acl->getResource($resourceArea); $this->assertTrue($resourceArea === $resource); }
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; }