Commit 92889f4dc3f0ea6477b5313b37afe9b219512d45
1 parent
24f39a27
Exists in
master
and in
1 other branch
Versão pré 3.0.6 do Módulo de Pesquisa Pública, para, caso tenha o Módulo de Pes…
…quisa Pública instalado na versão igual ou superior a 2.0.0, proteger documento público relacionado com Intimaçao ainda não cumprida
Showing
5 changed files
with
147 additions
and
125 deletions
Show diff stats
README.md
| 1 | -# Módulo de Pesquisa Pública | |
| 1 | +# Módulo de Pesquisa Pública | |
| 2 | 2 | |
| 3 | 3 | ## Requisitos: |
| 4 | -- SEI 3.0.0 instalado ou atualizado (verificar valor da constante de versão do SEI no arquivo /sei/web/SEI.php). | |
| 5 | -- Instalar nas máquinas que rodam o SEI a biblioteca php-mcrypt. | |
| 6 | -- Antes de executar os scripts de instalação (itens 4 e 5 abaixo), o usuário de acesso aos bancos de dados do SEI e do SIP, constante nos arquivos ConfiguracaoSEI.php e ConfiguracaoSip.php, deverá ter permissão de acesso total ao banco de dados, permitindo, por exemplo, criação e exclusão de tabelas. | |
| 4 | +- SEI 3.0.10 instalado ou atualizado (verificar valor da constante de versão do SEI no arquivo /sei/web/SEI.php). | |
| 5 | +- Instalar nas máquinas que rodam o SEI a biblioteca "php-mcrypt". | |
| 6 | +- Antes de executar os scripts de instalação (itens 4 e 5 abaixo), o usuário de acesso aos bancos de dados do SEI e do SIP, constante nos arquivos ConfiguracaoSEI.php e ConfiguracaoSip.php, deverá ter permissão de acesso total ao banco de dados, permitindo, por exemplo, criação e exclusão de tabelas. | |
| 7 | 7 | |
| 8 | -## Procedimentos para Instalação: | |
| 8 | +## Procedimentos para Instalação: | |
| 9 | 9 | |
| 10 | 10 | 1. Fazer backup dos bancos de dados do SEI e do SIP. |
| 11 | 11 | |
| 12 | -2. Carregar no servidor os arquivos do módulo localizados na pasta "/sei/web/modulos/pesquisa" e os scripts de instalação/atualização "/sei/scripts/sei_instalar_modulo_pesquisa.php" e "/sip/scripts/sip_instalar_modulo_pesquisa.php". | |
| 12 | +2. Carregar no servidor os arquivos do módulo localizados na pasta "/sei/web/modulos/pesquisa" e os scripts de instalação/atualização "/sei/scripts/sei_instalar_modulo_pesquisa.php" e "/sip/scripts/sip_instalar_modulo_pesquisa.php". | |
| 13 | 13 | |
| 14 | -3. Editar o arquivo "/sei/config/ConfiguracaoSEI.php", tomando o cuidado de usar editor que não altere o charset do arquivo, para adicionar a referência à classe de integração do módulo e seu caminho relativo dentro da pasta "/sei/web/modulos" na array 'Modulos' da chave 'SEI': | |
| 14 | +3. Editar o arquivo "/sei/config/ConfiguracaoSEI.php", tomando o cuidado de usar editor que não altere o charset do arquivo, para adicionar a referência à classe de integração do módulo e seu caminho relativo dentro da pasta "/sei/web/modulos" na array 'Modulos' da chave 'SEI': | |
| 15 | 15 | |
| 16 | 16 | 'SEI' => array( |
| 17 | 17 | 'URL' => 'http://[Servidor_PHP]/sei', |
| ... | ... | @@ -20,18 +20,24 @@ |
| 20 | 20 | 'Modulos' => array('PesquisaIntegracao' => 'pesquisa',) |
| 21 | 21 | ), |
| 22 | 22 | |
| 23 | -4. Rodar o script de banco "/sei/scripts/sei_instalar_modulo_pesquisa.php" em linha de comando no servidor do SEI, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: | |
| 23 | +4. Rodar o script de banco "/sei/scripts/sei_instalar_modulo_pesquisa.php" em linha de comando no servidor do SEI, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: | |
| 24 | 24 | |
| 25 | 25 | /usr/bin/php -c /etc/php.ini /var/www/html/sei/scripts/sei_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sei.log |
| 26 | 26 | |
| 27 | -5. Rodar o script de banco "/sip/scripts/sip_instalar_modulo_pesquisa.php" em linha de comando no servidor do SIP, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: | |
| 27 | +5. Rodar o script de banco "/sip/scripts/sip_instalar_modulo_pesquisa.php" em linha de comando no servidor do SIP, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: | |
| 28 | 28 | |
| 29 | 29 | /usr/bin/php -c /etc/php.ini /var/www/html/sip/scripts/sip_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sip.log |
| 30 | 30 | |
| 31 | -6. Após a execução com sucesso, com um usuário com permissão de Administrador no SEI, abra o menu de configuração do módulo no SEI (Administração > Pesquisa Pública > Parâmetros Pesquisa Pública) e verifique as opções de configuração da Pesquisa Pública. | |
| 31 | +6. Após a execução com sucesso dos dois scripts de banco acima, com um usuário com permissão de Administrador no SEI, abra o menu de configuração do módulo no SEI (Administração > Pesquisa Pública > Parâmetros Pesquisa Pública) e verifique as opções de configuração. | |
| 32 | 32 | |
| 33 | -7. Após a configuração, a página de Pesquisa Pública estará acessível pelo endereço a seguir: | |
| 33 | +7. Após a configuração, a página de Pesquisa Pública estará acessÃvel pelo endereço a seguir: | |
| 34 | 34 | http://[Servidor_PHP]/sei/modulos/pesquisa/md_pesq_processo_pesquisar.php?acao_externa=protocolo_pesquisar&acao_origem_externa=protocolo_pesquisar&id_orgao_acesso_externo=0 |
| 35 | 35 | |
| 36 | -8. Em caso de erro durante a execução do script verificar (lendo as mensagens de erro e no SEI em Infra > Log e no SIP em Infra > Log) se a causa é algum problema na infra-estrutura local. Neste caso, após a correção, restaurar o backup do banco de dados e executar novamente os scripts indicados nos itens 4 e 5 acima. | |
| 37 | - - Caso não seja possível identificar a causa, abrir Issue no projeto do módulo no Gitlab do Portal do SPB: https://softwarepublico.gov.br/gitlab/cade/mod-sei-pesquisa | |
| 38 | 36 | \ No newline at end of file |
| 37 | +8. Em caso de erro durante a execução dos dois script de banco verificar (lendo as mensagens de erro,no SEI em Infra > Log e no SIP em Infra > Log) se a causa foi algum problema na infra-estrutura local. Neste caso, após a correção, restaurar o backup do banco de dados e executar novamente os scripts indicados nos itens 4 e 5 acima. | |
| 38 | + - Caso não seja possÃvel identificar a causa, abrir Issue no projeto do módulo no Gitlab do Portal do SPB: https://softwarepublico.gov.br/gitlab/cade/mod-sei-pesquisa | |
| 39 | + | |
| 40 | +## Orientações Negociais: | |
| 41 | + | |
| 42 | +1. A partir da versão 3.0.6 do Módulo de Pesquisa Pública existe integração com o Módulo de Peticionamento e Intimação Eletrônicos, em que a Pesquisa Pública percebe se existe o mencionado módulo na versão 2.0.0 ou superior instalado no SEI e, com isso, tem comportamento próprio na tela de acesso ao processo pela Pesquisa Pública para **proteger o acesso a documento público que esteja relacionado com Intimação Eletrônica ainda não cumprida**. | |
| 43 | + - Este comportamento visa a proteger o conhecimento do teor do documento por meios diversos do Cumprimento da Intimação Eletrônica. | |
| 44 | + - Após o Cumprimento da Intimação Eletrônica pelos destinatários, por ser documento público, o acesso a seu teor por meio da Pesquisa Pública passa a estar liberado. | |
| 39 | 45 | \ No newline at end of file | ... | ... |
sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php
| ... | ... | @@ -38,6 +38,7 @@ class MdPesqBuscaProtocoloExterno { |
| 38 | 38 | public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) { |
| 39 | 39 | |
| 40 | 40 | //carrega configurações pesquisa |
| 41 | + | |
| 41 | 42 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); |
| 42 | 43 | $objParametroPesquisaDTO->retStrNome(); |
| 43 | 44 | $objParametroPesquisaDTO->retStrValor(); |
| ... | ... | @@ -55,10 +56,8 @@ class MdPesqBuscaProtocoloExterno { |
| 55 | 56 | |
| 56 | 57 | $parametros = new stdClass(); |
| 57 | 58 | $filtro = new stdClass(); |
| 58 | - $partialfields = ''; | |
| 59 | 59 | |
| 60 | - // Parametros peticionamento elerônico | |
| 61 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | |
| 60 | + $partialfields = ''; | |
| 62 | 61 | |
| 63 | 62 | //die($_REQUEST["partialfields"]); |
| 64 | 63 | |
| ... | ... | @@ -424,23 +423,14 @@ class MdPesqBuscaProtocoloExterno { |
| 424 | 423 | die; |
| 425 | 424 | } |
| 426 | 425 | |
| 427 | - // Protege Intimação eletônica | |
| 428 | - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
| 429 | - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objProtocoloDTO->getDblIdProtocolo())) == false){ | |
| 430 | - $titulo .= " "; | |
| 431 | - $titulo .= $dados["identificacao_protocolo"]; | |
| 432 | - $snippet = 'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida'; | |
| 433 | - | |
| 434 | - | |
| 435 | - }else{ | |
| 436 | - $titulo .= " "; | |
| 437 | - $parametrosCriptografadosDocumentos = MdPesqCriptografia::criptografa('acao_externa=md_pesq_documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); | |
| 438 | - $endereco = 'md_pesq_documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos; | |
| 439 | - $titulo .= "(<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\""; | |
| 440 | - $titulo .= " class=\"protocoloNormal\""; | |
| 441 | - $titulo .= ">" . $dados["identificacao_protocolo"] . "</a>)"; | |
| 442 | - } | |
| 443 | - | |
| 426 | + $titulo .= " "; | |
| 427 | + $parametrosCriptografadosDocumentos = MdPesqCriptografia::criptografa('acao_externa=md_pesq_documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); | |
| 428 | + $endereco = 'md_pesq_documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos; | |
| 429 | + $titulo .= "(<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\""; | |
| 430 | + $titulo .= " class=\"protocoloNormal\""; | |
| 431 | + $titulo .= ">" . $dados["identificacao_protocolo"] . "</a>)"; | |
| 432 | + | |
| 433 | + //$tituloProtocolo = "<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\" class=\"protocoloNormal\" >".$dados["protocolo_documento_formatado"]. "</a>"; | |
| 444 | 434 | |
| 445 | 435 | } |
| 446 | 436 | |
| ... | ... | @@ -500,10 +490,6 @@ class MdPesqBuscaProtocoloExterno { |
| 500 | 490 | |
| 501 | 491 | } |
| 502 | 492 | |
| 503 | - | |
| 504 | - | |
| 505 | - | |
| 506 | - | |
| 507 | 493 | // Protege contra a não idexação no solr quando o processo passa de público para restrito. |
| 508 | 494 | if(($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaProcessoRestrito) || ($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() == ProtocoloRN::$NA_SIGILOSO)){ |
| 509 | 495 | ... | ... |
sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php
| ... | ... | @@ -21,11 +21,13 @@ try { |
| 21 | 21 | //InfraDebug::getInstance()->setBolDebugInfra(false); |
| 22 | 22 | //InfraDebug::getInstance()->limpar(); |
| 23 | 23 | ////////////////////////////////////////////////////////////////////////////// |
| 24 | - | |
| 25 | - | |
| 26 | - MdPesqConverteURI::converterURI(); | |
| 27 | - MdPesqPesquisaUtil::valiadarLink(); | |
| 28 | - | |
| 24 | + MdPesqConverteURI::converterURI(); | |
| 25 | + MdPesqPesquisaUtil::valiadarLink(); | |
| 26 | +// if (isset($_GET['id_acesso_externo'])){ | |
| 27 | +// SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink(); | |
| 28 | +// }else{ | |
| 29 | +// // SessaoSEIExterna::getInstance()->validarLink(); | |
| 30 | +// } | |
| 29 | 31 | |
| 30 | 32 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); |
| 31 | 33 | $objParametroPesquisaDTO->retStrNome(); |
| ... | ... | @@ -39,9 +41,6 @@ try { |
| 39 | 41 | $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; |
| 40 | 42 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; |
| 41 | 43 | |
| 42 | - // Parametros peticionamento elerônico | |
| 43 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | |
| 44 | - | |
| 45 | 44 | $objDocumentoDTO = new DocumentoDTO(); |
| 46 | 45 | $objDocumentoDTO->retDblIdDocumento(); |
| 47 | 46 | $objDocumentoDTO->retDblIdProcedimento(); |
| ... | ... | @@ -104,17 +103,18 @@ try { |
| 104 | 103 | |
| 105 | 104 | } |
| 106 | 105 | } |
| 107 | - | |
| 108 | - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
| 109 | - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objDocumentoDTO->getDblIdDocumento())) == false){ | |
| 110 | - | |
| 111 | - die("Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida"); | |
| 112 | - | |
| 113 | - } | |
| 114 | - | |
| 115 | - // Exibe apenas documentos de processos públicos. | |
| 116 | - | |
| 117 | 106 | |
| 107 | + //Protege acesso à documento público de intimação eletrônica | |
| 108 | + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); | |
| 109 | + if( !is_null($objInfraParametroDTO) ){ | |
| 110 | + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
| 111 | + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true)) ){ | |
| 112 | + die("Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida"); | |
| 113 | + } | |
| 114 | + } | |
| 115 | + | |
| 116 | + // Exibe apenas documentos de processos públicos. | |
| 117 | + | |
| 118 | 118 | //Carregar dados do cabeçalho |
| 119 | 119 | $objProcedimentoDTO = new ProcedimentoDTO(); |
| 120 | 120 | $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); | ... | ... |
sei/web/modulos/pesquisa/md_pesq_processo_exibir.php
| ... | ... | @@ -36,10 +36,6 @@ try { |
| 36 | 36 | $objParametroPesquisaRN = new MdPesqParametroPesquisaRN(); |
| 37 | 37 | $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); |
| 38 | 38 | $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); |
| 39 | - | |
| 40 | - // Parametros peticionamento elerônico | |
| 41 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | |
| 42 | - | |
| 43 | 39 | |
| 44 | 40 | $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; |
| 45 | 41 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; |
| ... | ... | @@ -321,21 +317,25 @@ try { |
| 321 | 317 | $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO(); |
| 322 | 318 | $urlCripografadaDocumeto = MdPesqCriptografia::criptografa('acao_externa=documento_exibir&id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0'); |
| 323 | 319 | $strLinkDocumento = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink('md_pesq_documento_consulta_externa.php?'.$urlCripografadaDocumeto)); |
| 324 | - | |
| 325 | - //Protege acesso à documento público de intimação eletrônica | |
| 326 | - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
| 327 | - $bolValidaIntimacaoEletronica = false; | |
| 328 | - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objDocumentoDTO->getDblIdDocumento())) == false){ | |
| 329 | - $bolValidaIntimacaoEletronica = true; | |
| 330 | - } | |
| 331 | - | |
| 332 | - $strResultado .= '<tr class="infraTrClara">'; | |
| 333 | - | |
| 320 | + | |
| 321 | + //Protege acesso à documento público de intimação eletrônica | |
| 322 | + $bolValidaIntimacaoEletronica = true; | |
| 323 | + | |
| 324 | + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); | |
| 325 | + if( !is_null($objInfraParametroDTO) ){ | |
| 326 | + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
| 327 | + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true) ) ){ | |
| 328 | + $bolValidaIntimacaoEletronica = false; | |
| 329 | + } | |
| 330 | + } | |
| 331 | + | |
| 332 | + $strResultado .= '<tr class="infraTrClara">'; | |
| 333 | + | |
| 334 | 334 | //Cria checkbox para gerar PDF, verifica se o Processo é público e o Acesso Local do Protocolo é Público |
| 335 | - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){ | |
| 336 | - if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO) && !$bolValidaIntimacaoEletronica){ | |
| 337 | - $strResultado .= '<td align="center">'.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).'</td>'; | |
| 338 | - }else{ | |
| 335 | + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){ | |
| 336 | + if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO) && $bolValidaIntimacaoEletronica){ | |
| 337 | + $strResultado .= '<td align="center">'.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).'</td>'; | |
| 338 | + }else{ | |
| 339 | 339 | $strResultado .= '<td> </td>'; |
| 340 | 340 | } |
| 341 | 341 | }else{ |
| ... | ... | @@ -344,19 +344,18 @@ try { |
| 344 | 344 | |
| 345 | 345 | |
| 346 | 346 | //Exibe link de documentos com nivel de acesso local Público de processo público |
| 347 | - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ | |
| 348 | - | |
| 349 | - if($bolValidaIntimacaoEletronica){ | |
| 350 | - $strResultado .= '<td align="center"><span class="retiraAncoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</span>'; | |
| 351 | - $strResultado .= '<img src="/infra_css/imagens/espaco.gif">'; | |
| 352 | - $strResultado .= '<img src="../peticionamento/imagens/intimacao_nao_cumprida_doc_anexo.png" align="absbottom" title="Acesso Restrito.
'.'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida">'; | |
| 353 | - }else{ | |
| 354 | - $strResultado .= '<td align="center" style="padding-right:22px"><a href="javascript:void(0);" onclick="window.open(\''.$strLinkDocumento.'\');" alt="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" title="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" class="ancoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</a></td>'; | |
| 355 | - } | |
| 356 | - | |
| 357 | - | |
| 358 | - }else{ | |
| 359 | - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ | |
| 347 | + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ | |
| 348 | + | |
| 349 | + if($bolValidaIntimacaoEletronica){ | |
| 350 | + $strResultado .= '<td align="center" style="padding-right:22px"><a href="javascript:void(0);" onclick="window.open(\''.$strLinkDocumento.'\');" alt="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" title="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" class="ancoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</a></td>'; | |
| 351 | + }else{ | |
| 352 | + $strResultado .= '<td align="center"><span class="retiraAncoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</span>'; | |
| 353 | + $strResultado .= '<img src="/infra_css/imagens/espaco.gif">'; | |
| 354 | + $strResultado .= '<img src="../peticionamento/imagens/intimacao_nao_cumprida_doc_anexo.png" align="absbottom" title="Acesso Restrito.
'.'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida">'; | |
| 355 | + } | |
| 356 | + | |
| 357 | + }else{ | |
| 358 | + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ | |
| 360 | 359 | |
| 361 | 360 | //necessario para retornar id hipotese legal do documento |
| 362 | 361 | $strHipoteseLegalDocumento = ''; |
| ... | ... | @@ -575,10 +574,9 @@ try { |
| 575 | 574 | PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); |
| 576 | 575 | |
| 577 | 576 | }else { |
| 578 | - | |
| 579 | 577 | |
| 580 | - $objDocumentoRN = new DocumentoRN(); | |
| 581 | - | |
| 578 | + $objDocumentoRN = new DocumentoRN(); | |
| 579 | + | |
| 582 | 580 | $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento'); |
| 583 | 581 | $objDocumentoDTO = new DocumentoDTO(); |
| 584 | 582 | $objDocumentoDTO->retDblIdDocumento(); |
| ... | ... | @@ -586,17 +584,29 @@ try { |
| 586 | 584 | $objDocumentoDTO->retDblIdProcedimento(); |
| 587 | 585 | $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); |
| 588 | 586 | $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo(); |
| 589 | - $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); | |
| 590 | - | |
| 591 | - foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ | |
| 592 | - | |
| 587 | + $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); | |
| 588 | + | |
| 589 | + $arrSelecionados = PaginaSEIExterna::getInstance()->getArrStrItensSelecionados(); | |
| 590 | + | |
| 591 | + foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ | |
| 592 | + | |
| 593 | 593 | //Alterardo para atender o pedido da anatel para gerar pdf de documentos de nivel de acesso local = Público e de Procedimentos Públicos mesmo se o nivel global for restrito |
| 594 | 594 | if($bolListaDocumentoProcessoRestrito){ |
| 595 | 595 | if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){ |
| 596 | 596 | die ("Erro ao Gerar Pdf"); |
| 597 | 597 | } |
| 598 | - }else if($bolListaDocumentoProcessoPublico){ | |
| 599 | - if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){ | |
| 598 | + | |
| 599 | + //Protege acesso à documento público de intimação eletrônica | |
| 600 | + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); | |
| 601 | + if( !is_null($objInfraParametroDTO) ){ | |
| 602 | + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
| 603 | + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true) ) ){ | |
| 604 | + $idx_documento = array_search($objDocumentoDTO->getDblIdDocumento(), $arrSelecionados); | |
| 605 | + unset($arrSelecionados[$idx_documento]); | |
| 606 | + } | |
| 607 | + } | |
| 608 | + }else if($bolListaDocumentoProcessoPublico){ | |
| 609 | + if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){ | |
| 600 | 610 | die ("Erro ao Gerar Pdf"); |
| 601 | 611 | } |
| 602 | 612 | }else{ |
| ... | ... | @@ -604,13 +614,18 @@ try { |
| 604 | 614 | } |
| 605 | 615 | |
| 606 | 616 | |
| 607 | - } | |
| 608 | - | |
| 609 | - | |
| 610 | - $objDocumentoRN = new DocumentoRN(); | |
| 611 | - $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados())); | |
| 612 | - | |
| 613 | - $bolGeracaoOK = true; | |
| 617 | + } | |
| 618 | + | |
| 619 | + if (count($arrSelecionados)==0){ | |
| 620 | + die ("Sem documento a gerar"); | |
| 621 | + } | |
| 622 | + | |
| 623 | + $arrSelecionados = array_values($arrSelecionados); | |
| 624 | + | |
| 625 | + $objDocumentoRN = new DocumentoRN(); | |
| 626 | + $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',$arrSelecionados)); | |
| 627 | + | |
| 628 | + $bolGeracaoOK = true; | |
| 614 | 629 | |
| 615 | 630 | } |
| 616 | 631 | |
| ... | ... | @@ -778,7 +793,6 @@ window.onclick = function(event) { |
| 778 | 793 | ?> |
| 779 | 794 | |
| 780 | 795 | function gerarPdf() { |
| 781 | - | |
| 782 | 796 | if (document.getElementById('hdnInfraItensSelecionados').value==''){ |
| 783 | 797 | alert('Nenhum documento selecionado.'); |
| 784 | 798 | return; | ... | ... |
sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php
| ... | ... | @@ -36,12 +36,12 @@ class MdPesqParametroPesquisaRN extends InfraRN { |
| 36 | 36 | protected function consultarConectado(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO){ |
| 37 | 37 | try { |
| 38 | 38 | |
| 39 | - //Valida Permissao | |
| 40 | - SessaoSEI::getInstance()->validarPermissao('md_pesq_parametro_consultar',__METHOD__,$objParametroPesquisaDTO); | |
| 41 | - | |
| 42 | - //Regras de Negocio | |
| 43 | - //$objInfraException = new InfraException(); | |
| 44 | - | |
| 39 | + //Valida Permissao | |
| 40 | + SessaoSEI::getInstance()->validarPermissao('md_pesq_parametro_consultar',__METHOD__,$objParametroPesquisaDTO); | |
| 41 | + | |
| 42 | + //Regras de Negocio | |
| 43 | + //$objInfraException = new InfraException(); | |
| 44 | + | |
| 45 | 45 | //$objInfraException->lancarValidacoes(); |
| 46 | 46 | |
| 47 | 47 | $objParametroPesquisaBD = new MdPesqParametroPesquisaBD($this->getObjInfraIBanco()); |
| ... | ... | @@ -122,24 +122,40 @@ class MdPesqParametroPesquisaRN extends InfraRN { |
| 122 | 122 | throw new InfraException('Erro listando Parâmetro da Pesquisas.',$e); |
| 123 | 123 | } |
| 124 | 124 | } |
| 125 | - | |
| 126 | - | |
| 127 | - protected function consultarVersaoPeticionamentoConectado(){ | |
| 128 | - | |
| 129 | - $objInfraParametroDTO = new InfraParametroDTO(); | |
| 130 | - $objInfraParametroDTO->setStrNome('VERSAO_MODULO_PETICIONAMENTO'); | |
| 131 | - $objInfraParametroDTO->retStrValor(); | |
| 132 | - | |
| 133 | - $objInfraParametroBD = new InfraParametroBD($this->getObjInfraIBanco()); | |
| 134 | - $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); | |
| 135 | - | |
| 136 | - return $objInfraParametroDTO; | |
| 125 | + | |
| 126 | + | |
| 127 | + protected function consultarVersaoPeticionamentoConectado($versao=null){ | |
| 128 | + $arrModulos = ConfiguracaoSEI::getInstance()->getValor('SEI','Modulos'); | |
| 129 | + if(is_array($arrModulos) && array_key_exists('PeticionamentoIntegracao', $arrModulos)){ | |
| 130 | + $objInfraParametroDTO = new InfraParametroDTO(); | |
| 131 | + $objInfraParametroDTO->setStrNome('VERSAO_MODULO_PETICIONAMENTO'); | |
| 132 | + $objInfraParametroDTO->retStrValor(); | |
| 133 | + | |
| 134 | + $objInfraParametroBD = new InfraParametroBD($this->getObjInfraIBanco()); | |
| 135 | + $arrObjInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); | |
| 136 | + | |
| 137 | + //versão do parametro é igual ou maior que a enviada | |
| 138 | + if (!is_null($versao)){ | |
| 139 | + if (count($arrObjInfraParametroDTO)>0){ | |
| 140 | + $arr_versao_parametro = explode('.',$arrObjInfraParametroDTO->getStrValor()); | |
| 141 | + $arr_versao = explode('.',$versao); | |
| 142 | + for ($i=0;$i<count($arr_versao_parametro);$i++){ | |
| 143 | + if (isset($arr_versao[$i])) { | |
| 144 | + if( intval($arr_versao_parametro[$i]) < intval($arr_versao[$i]) ){ | |
| 145 | + return null; | |
| 146 | + }else if( intval($arr_versao_parametro[$i]) > intval($arr_versao[$i]) ){ | |
| 147 | + return $arrObjInfraParametroDTO; | |
| 148 | + } | |
| 149 | + } | |
| 150 | + } | |
| 151 | + } | |
| 152 | + } | |
| 153 | + return $arrObjInfraParametroDTO; | |
| 154 | + }else{ | |
| 155 | + return null; | |
| 156 | + } | |
| 137 | 157 | } |
| 138 | - | |
| 139 | - | |
| 140 | 158 | |
| 141 | - | |
| 142 | - | |
| 143 | 159 | private function validarStrNome(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ |
| 144 | 160 | if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrNome())){ |
| 145 | 161 | $objInfraException->adicionarValidacao('Nome não informado.'); | ... | ... |