/** * Monta o comando SQL de registro de log. * * @param br\gov\sial\core\valueObject\ValueObjectAbstract $valueObject * @param char $operation * @return string */ public function makeQuery(ValueObjectAbstract $valueObject, $operation) { $annon = $valueObject->annotation(); $infor = $annon->getClassDoc(); $fields = $this->fetch($valueObject); $module = self::$bootstrap->request()->getModule(); $functionality = self::$bootstrap->request()->getFuncionality(); $action = self::$bootstrap->request()->getAction(); $route = implode('/', array($module, $functionality, $action)); $userId = 0; $userIsExternal = 0; $sgSistema = NULL; $sessionUserData = \br\gov\sial\core\util\Session::getLiveSession('sisicmbio', 'USER'); if ($sessionUserData) { $userId = (int) $sessionUserData->sqUsuario; $userIsExternal = (int) $sessionUserData->inPerfilExterno; if (isset($sessionUserData->sqSistema) && isset($sessionUserData->sistemas[$sessionUserData->sqSistema])) { $sgSistema = $sessionUserData->sistemas[$sessionUserData->sqSistema]['sgSistema']; } else { $sgSistema = isset($sessionUserData->sgSistema) ? $sessionUserData->sgSistema : NULL; } } $xml = pg_escape_string($this->_makeXml($infor['schema'], $infor['entity'], $route, $fields['field'], $fields['value'])); return sprintf("SELECT auditoria.trilha_insere('%s', '%s', '%s', '%d'::INT, '%s', '%s'::BOOLEAN, '%s'::XML)", $sgSistema, "/{$module}/{$functionality}", $action, $userId, $operation[0], $userIsExternal, $xml); }
/** * Gera Menus para a View */ public function getMenu() { # Monto a opção de escolha dos sistemas do Usuario try { $sess = Session::getLiveSession('sisicmbio', 'USER'); SIALException::ThrowsExceptionIfParamIsNull($sess, 'Não foi encontrada a sessão para o objeto informado'); } catch (SIALException $e) { # Não foi encontrada a Sessão para Este Sistema header("Location: " . $this->bootstrap()->config()->get('app')->get('authSystem')); } $count = 0; foreach ($sess->sistemas as $sistema) { $arrSistema[$count]['href'] = $sistema['sqSistema']; $arrSistema[$count]['text'] = $sistema['sgSistema']; $count++; } $Menuoptions = array('__DIVIDER_VERTICAL__', 'Início' => array(), '__DIVIDER_VERTICAL__', 'Sistemas' => $arrSistema, '__DIVIDER_VERTICAL__'); $menuParam = new \stdClass(); $menuParam->options = $Menuoptions; $menuParam->type = 'h'; $this->_SIALApplication->set('menuH', $this->getSAF()->create('menu', $menuParam)); $this->_SIALApplication->set('param', array('nome' => $sess->noPessoa, 'perfil' => $sess->noPerfil, 'uorg' => isset($sess->noUnidadeOrg) ? $sess->noUnidadeOrg : NULL, 'help' => 'HTML', 'sysId' => $sess->sqSistema, 'multiProfile' => count($sess->allProfile) > 1 ? TRUE : FALSE)); # Monta os Menus $menu = $sess->MenuExterno; $arrMenu = array(); foreach ($menu as $no) { #Sq da Raíz $curr = $no['MenuPai']['sqMenu']; $arrMenu[$curr]['text'] = $no['MenuPai']['noMenu']; $arrMenu[$curr]['href'] = $no['Acao']; #adiciona cada filho if (isset($no['MenuFilho'])) { foreach ($no['MenuFilho'] as $filho) { if (isset($filho['Acao']) && NULL !== $filho['Acao']) { $arrMenu[$curr][$filho['MenuFilho']['sqMenu']]['href'] = $filho['Acao']; } if (!empty($filho['MenuFilho']['noMenu'])) { $arrMenu[$curr][$filho['MenuFilho']['sqMenu']]['text'] = $filho['MenuFilho']['noMenu']; } } } if (isset($no['MenuNeto'])) { foreach ($no['MenuNeto'] as $menuNeto) { $netoList = current($menuNeto); if (isset($arrMenu[$curr][$netoList['sqMenuPai']])) { $arrMenu[$curr][$netoList['sqMenuPai']][$netoList['sqMenu']]['href'] = isset($menuNeto['Acao']) ? $menuNeto['Acao'] : '#'; if (isset($netoList['noMenu'])) { $arrMenu[$curr][$netoList['sqMenuPai']][$netoList['sqMenu']]['text'] = $netoList['noMenu']; } } } } } $menuParam = new \stdClass(); $menuParam->title = 'Menu'; $menuParam->options = $arrMenu; $menuParam->type = 'v'; $this->_SIALApplication->set('menuV', $this->getSAF()->create('menu', $menuParam)); }
/** * Obtém uma instância do objeto session para manipulação dos dados de autenticação. * * @return br\gov\sial\core\util\Session */ private static function _getSession() { $sessionExpire = Registry::get('bootstrap')->config(self::SESSION_EXPIRE); return Session::start(self::NAMESPACE_SESSION, $sessionExpire); }
/** * Limpa uma mensagem da sessão após ser recuperada pela aplicação. * @param string $type */ private function _clean($type = NULL) { $this->_session->delete($this->_getType($type)); }