/** * 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); } }
/** * Redireciona o usuario para tela de pessoa fisica ou juridica */ public function rotaAction() { $session = Core_Integration_Sica_User::has(); if ($session) { Core_Integration_Sica_User::destroy(); $this->_redirect('usuario-externo/login'); } $this->_helper->layout->setLayout('create-usuario-externo'); }
public function createAction() { $session = Core_Integration_Sica_User::has(); if ($session) { Core_Integration_Sica_User::destroy(); $this->_redirect('usuario-externo/login'); } $this->view->dtCadastro = \Zend_Date::now()->toString('yyyy-MM-dd hh:mm:ss'); parent::createAction(); }
/** * */ protected static function getParams($data, $type, $options, $metodo) { self::checaOperacaoWs($metodo); $session = \Core_Integration_Sica_User::has(); $sqUsuario = \Core_Integration_Sica_User::getUserId() ? \Core_Integration_Sica_User::getUserId() : null; $perfilUsuario = $session ? \Core_Integration_Sica_User::getUserProfileExternal() : true; $sistema = \Core_Integration_Sica_User::getInfoSystem(\Core_Integration_Sica_User::getUserSystem()); $sis = \Zend_Registry::get('doctrine')->getEntityManager()->getRepository('app:Sistema')->findBySgSistema('SICA-e'); $sqSistema = $session ? $sistema['sqSistema'] : $sis[0]->getSqSistema(); $sgSistema = $session ? $sistema['sgSistema'] : $sis[0]->getSgSistema(); $request = new \Zend_Controller_Request_Http(); $arrRequest = explode('/', $request->getRequestUri()); $params = array('sqSistema' => (int) $sqSistema, 'sgSistema' => (string) $sgSistema, 'sqClasse' => self::NUM_ZERO, 'noClasse' => (string) $arrRequest[1] . '/' . $arrRequest[2], 'sqMetodo' => self::NUM_ZERO, 'noMetodo' => (string) 'index', 'sqUsuario' => $sqUsuario, 'sgOperacao' => self::$sqOperacao, 'stUsuarioExterno' => (int) $perfilUsuario); $params['xmTrilha'] = self::geraTagXml($type); return $params; }
/** * $sqSistema = Sigla do sistema * $sqClass = sequencial da class, para indefinido utilize 0 (zero) * $sqMetodo = sequencial do metodo, para indefinido utilize 0 (zero) * $noSchema = Nome do Schema * $noTabela = Nome da tabela * $sqUsuario = Usuario logado * $sgOperacao = I, U, D * $columns = {campo1, campo2, campo3} * $values = {value1, value2, value3} * @param \Doctrine\ORM\Event\LifecycleEventArgs $args */ protected static function getParams(LifecycleEventArgs $args) { $metadata = $args->getEntityManager()->getClassMetadata(get_class($args->getEntity())); $sistema = Core_Integration_Sica_User::getInfoSystem(Core_Integration_Sica_User::getUserSystem()); $sis = \Zend_Registry::get('doctrine')->getEntityManager()->getRepository('app:Sistema')->findBySgSistema('SICA-e'); $session = Core_Integration_Sica_User::has(); $sqSistema = $session ? $sistema['sqSistema'] : $sis[0]->getSqSistema(); $sgSistema = $session ? $sistema['sgSistema'] : $sis[0]->getSgSistema(); $request = new Zend_Controller_Request_Http(); $arrRequest = explode('/', $request->getRequestUri()); $perfilUsuario = $session ? \Core_Integration_Sica_User::getUserProfileExternal() : true; $usuario = $session ? \Core_Integration_Sica_User::getUserId() : null; $params = array('sqSistema' => (int) $sqSistema, 'sgSistema' => (string) $sgSistema, 'sqClasse' => self::NUM_ZERO, 'noClasse' => (string) $arrRequest[1] . '/' . $arrRequest[2], 'sqMetodo' => self::NUM_ZERO, 'noMetodo' => (string) 'index', 'sqUsuario' => $usuario, 'sgOperacao' => self::$sqOperacao, 'stUsuarioExterno' => (int) $perfilUsuario); $columnsFields = array(); $columnField = array(); $columnAssoc = array(); $valueField = array(); $valueAssoc = array(); foreach ($metadata->getFieldNames() as $name) { $valueField = $metadata->getFieldValue($args->getEntity(), $name); $columnField = $metadata->getColumnName($name); $columnsFields[$columnField] = $valueField; } foreach ($metadata->getAssociationNames() as $name) { if ($metadata->hasAssociation($name)) { $associationMap = $metadata->getAssociationMapping($name); if (isset($associationMap['sourceToTargetKeyColumns'])) { $valueAssoc = $metadata->getFieldValue($args->getEntity(), $name); $columnAssoc = key($associationMap['sourceToTargetKeyColumns']); $columnsFields[$columnAssoc] = $valueAssoc; } } } $columnsFields = self::validateValue($columnsFields); $params['xmTrilha'] = self::geraTagXml($columnsFields, $metadata, $args); return $params; }