/** * Método para verificar si tiene acceso al recurso * @return boolean */ public function check($perfil) { $modulo = Router::get('module'); $controlador = Router::get('controller'); $accion = Router::get('action'); if (isset($this->_templates["{$perfil}"]) && !Input::isAjax()) { View::template("backend/{$this->_templates["{$perfil}"]}"); } if ($modulo) { $recurso1 = "{$modulo}/{$controlador}/{$accion}"; //Por si tiene acceso a una única acción $recurso2 = "{$modulo}/{$controlador}/*"; //por si tiene acceso a todas las acciones $recurso3 = "{$modulo}/*/*"; //por si tiene acceso a todos los controladores $recurso4 = "*"; //por si tiene acceso a todo el sistema } else { $recurso1 = "{$controlador}/{$accion}"; //Por si tiene acceso a una única acción $recurso2 = "{$controlador}/*"; //por si tiene acceso a todas las acciones $recurso3 = "{$modulo}/*/*"; //por si tiene acceso a todos los controladores $recurso4 = "*"; //por si tiene acceso a todo el sistema } //MkcMessage::info("Perfil: $perfil <br /> Recurso 1: $recurso1 <br /> Recurso 2: $recurso2 <br /> Recurso 3: $recurso3 <br /> Recurso 4: $recurso4"); return self::$_acl->check($recurso1, $perfil) || self::$_acl->check($recurso2, $perfil) || self::$_acl->check($recurso3, $perfil) || self::$_acl->check($recurso4, $perfil); }
{ global $logger; $logger->doLog(Logger::LOG_ERR, $str); } function logException(Exception $e) { global $logger; $logger->logException($e); } // Initialize locale and region objects LocaleManager::init(); RegionManager::init(); // Start session AuthHandler::init(); // Initialize the ACL $acl = new SimpleAcl(); $acl->addRole(ROLE_GUEST); $acl->addRole(ROLE_AUTHORIZED_ACCESS, ROLE_GUEST); $acl->addRole(ROLE_IDENTIFIED, ROLE_GUEST); $acl->addRole(ROLE_IDENTIFIED_REGISTERED, ROLE_IDENTIFIED); $acl->addRole(ROLE_ADMINISTRATOR, ROLE_IDENTIFIED_REGISTERED); if (ENV === ENV_DEVELOPMENT) { $acl->addResource(ROLE_GUEST, array('webres.php', 'test.php')); } $acl->addResource(ROLE_GUEST, array('auth.php', 'optout.php')); if (getConfiguration('auth.mode') == AuthHandler::AUTH_MODE_PASS) { $acl->addResource(ROLE_GUEST, array('join.php', 'help.php', 'AddRideAll.php', 'GetRegionConfiguration.php')); } else { if (AuthHandler::getAuthMode() == AuthHandler::AUTH_MODE_TOKEN) { $acl->addResource(ROLE_GUEST, array('join.php', 'help.php', 'index.php', 'AddRideAll.php', 'feedback.php', 'SearchRides.php', 'GetRegionConfiguration.php')); }
function testSetters() { $acl = new SimpleAcl(); $roles = array(ROLE_GUEST => array(ROLE_GUEST), ROLE_IDENTIFIED => array(ROLE_IDENTIFIED)); $accessList = array('resource1' => array(ROLE_GUEST), 'resource2' => array(ROLE_GUEST, ROLE_IDENTIFIED)); $acl->setRoles($roles); $acl->setAcl($accessList); $this->assertTrue($acl->isAllowed(ROLE_GUEST, 'resource1')); $this->assertFalse($acl->isAllowed(ROLE_IDENTIFIED, 'resource1')); $this->assertTrue($acl->isAllowed(ROLE_GUEST, 'resource2')); $this->assertTrue($acl->isAllowed(ROLE_IDENTIFIED, 'resource2')); }