/** * Route Shutdown - Verificações de segurança - SESSION, ACL, AUTH * * @param Zend_Controller_Request_Abstract $request * @return void */ public function routeShutdown(Zend_Controller_Request_Abstract $request) { if ($this->skip($request)) { return; } if (!Core_Integration_Sica_User::has()) { $this->getRedirectLogin($request); return; } $sgSistema = strtoupper(Core_Integration_Sica_User::getSgSystemActive()); $session = new Core_Session_Namespace('USER', FALSE, TRUE); if (!isset($session->acl)) { if (!$this->skipHome($request)) { $this->getRedirectHome($request); } return; } if (!$session->acl->hasRole($session->noPerfil)) { throw new UnexpectedValueException('Perfil não identificado.'); } if ($this->skipAcl($request) || $this->skipIndexBlank($request)) { return; } $permission = FALSE; foreach ($this->getResources() as $resource) { if ($session->acl->has($resource) && $session->acl->isAllowed($session->noPerfil, $resource)) { $permission = TRUE; break; } } if (!$permission) { throw new Exception('Acesso Negado!', 403); } }
public static function getInfoSystem($system = null) { if (null === $system) { $user = static::get(); $sgSistema = strtoupper(Core_Integration_Sica_User::getSgSystemActive()); if (!isset($user->sqSistema)) { return null; } $system = $user->sqSistema; } $systems = static::getInfoSystems(); if (isset($systems[$system])) { return $systems[$system]; } return null; }