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 | ## Requisitos: | 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 | 1. Fazer backup dos bancos de dados do SEI e do SIP. | 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 | 'SEI' => array( | 16 | 'SEI' => array( |
17 | 'URL' => 'http://[Servidor_PHP]/sei', | 17 | 'URL' => 'http://[Servidor_PHP]/sei', |
@@ -20,18 +20,24 @@ | @@ -20,18 +20,24 @@ | ||
20 | 'Modulos' => array('PesquisaIntegracao' => 'pesquisa',) | 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 | /usr/bin/php -c /etc/php.ini /var/www/html/sei/scripts/sei_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sei.log | 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 | /usr/bin/php -c /etc/php.ini /var/www/html/sip/scripts/sip_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sip.log | 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 | 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 | 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 | \ No newline at end of file | 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 | \ No newline at end of file | 45 | \ No newline at end of file |
sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php
@@ -38,6 +38,7 @@ class MdPesqBuscaProtocoloExterno { | @@ -38,6 +38,7 @@ class MdPesqBuscaProtocoloExterno { | ||
38 | public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) { | 38 | public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) { |
39 | 39 | ||
40 | //carrega configurações pesquisa | 40 | //carrega configurações pesquisa |
41 | + | ||
41 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); | 42 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); |
42 | $objParametroPesquisaDTO->retStrNome(); | 43 | $objParametroPesquisaDTO->retStrNome(); |
43 | $objParametroPesquisaDTO->retStrValor(); | 44 | $objParametroPesquisaDTO->retStrValor(); |
@@ -55,10 +56,8 @@ class MdPesqBuscaProtocoloExterno { | @@ -55,10 +56,8 @@ class MdPesqBuscaProtocoloExterno { | ||
55 | 56 | ||
56 | $parametros = new stdClass(); | 57 | $parametros = new stdClass(); |
57 | $filtro = new stdClass(); | 58 | $filtro = new stdClass(); |
58 | - $partialfields = ''; | ||
59 | 59 | ||
60 | - // Parametros peticionamento elerônico | ||
61 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | 60 | + $partialfields = ''; |
62 | 61 | ||
63 | //die($_REQUEST["partialfields"]); | 62 | //die($_REQUEST["partialfields"]); |
64 | 63 | ||
@@ -424,23 +423,14 @@ class MdPesqBuscaProtocoloExterno { | @@ -424,23 +423,14 @@ class MdPesqBuscaProtocoloExterno { | ||
424 | die; | 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,10 +490,6 @@ class MdPesqBuscaProtocoloExterno { | ||
500 | 490 | ||
501 | } | 491 | } |
502 | 492 | ||
503 | - | ||
504 | - | ||
505 | - | ||
506 | - | ||
507 | // Protege contra a não idexação no solr quando o processo passa de público para restrito. | 493 | // Protege contra a não idexação no solr quando o processo passa de público para restrito. |
508 | if(($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaProcessoRestrito) || ($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() == ProtocoloRN::$NA_SIGILOSO)){ | 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,11 +21,13 @@ try { | ||
21 | //InfraDebug::getInstance()->setBolDebugInfra(false); | 21 | //InfraDebug::getInstance()->setBolDebugInfra(false); |
22 | //InfraDebug::getInstance()->limpar(); | 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 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); | 32 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); |
31 | $objParametroPesquisaDTO->retStrNome(); | 33 | $objParametroPesquisaDTO->retStrNome(); |
@@ -39,9 +41,6 @@ try { | @@ -39,9 +41,6 @@ try { | ||
39 | $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; | 41 | $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; |
40 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; | 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 | $objDocumentoDTO = new DocumentoDTO(); | 44 | $objDocumentoDTO = new DocumentoDTO(); |
46 | $objDocumentoDTO->retDblIdDocumento(); | 45 | $objDocumentoDTO->retDblIdDocumento(); |
47 | $objDocumentoDTO->retDblIdProcedimento(); | 46 | $objDocumentoDTO->retDblIdProcedimento(); |
@@ -104,17 +103,18 @@ try { | @@ -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 | //Carregar dados do cabeçalho | 118 | //Carregar dados do cabeçalho |
119 | $objProcedimentoDTO = new ProcedimentoDTO(); | 119 | $objProcedimentoDTO = new ProcedimentoDTO(); |
120 | $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); | 120 | $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); |
sei/web/modulos/pesquisa/md_pesq_processo_exibir.php
@@ -36,10 +36,6 @@ try { | @@ -36,10 +36,6 @@ try { | ||
36 | $objParametroPesquisaRN = new MdPesqParametroPesquisaRN(); | 36 | $objParametroPesquisaRN = new MdPesqParametroPesquisaRN(); |
37 | $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); | 37 | $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); |
38 | $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); | 38 | $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); |
39 | - | ||
40 | - // Parametros peticionamento elerônico | ||
41 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | ||
42 | - | ||
43 | 39 | ||
44 | $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; | 40 | $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; |
45 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; | 41 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; |
@@ -321,21 +317,25 @@ try { | @@ -321,21 +317,25 @@ try { | ||
321 | $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO(); | 317 | $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO(); |
322 | $urlCripografadaDocumeto = MdPesqCriptografia::criptografa('acao_externa=documento_exibir&id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0'); | 318 | $urlCripografadaDocumeto = MdPesqCriptografia::criptografa('acao_externa=documento_exibir&id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0'); |
323 | $strLinkDocumento = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink('md_pesq_documento_consulta_externa.php?'.$urlCripografadaDocumeto)); | 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 | //Cria checkbox para gerar PDF, verifica se o Processo é público e o Acesso Local do Protocolo é Público | 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 | $strResultado .= '<td> </td>'; | 339 | $strResultado .= '<td> </td>'; |
340 | } | 340 | } |
341 | }else{ | 341 | }else{ |
@@ -344,19 +344,18 @@ try { | @@ -344,19 +344,18 @@ try { | ||
344 | 344 | ||
345 | 345 | ||
346 | //Exibe link de documentos com nivel de acesso local Público de processo público | 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 | //necessario para retornar id hipotese legal do documento | 360 | //necessario para retornar id hipotese legal do documento |
362 | $strHipoteseLegalDocumento = ''; | 361 | $strHipoteseLegalDocumento = ''; |
@@ -575,10 +574,9 @@ try { | @@ -575,10 +574,9 @@ try { | ||
575 | PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); | 574 | PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); |
576 | 575 | ||
577 | }else { | 576 | }else { |
578 | - | ||
579 | 577 | ||
580 | - $objDocumentoRN = new DocumentoRN(); | ||
581 | - | 578 | + $objDocumentoRN = new DocumentoRN(); |
579 | + | ||
582 | $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento'); | 580 | $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento'); |
583 | $objDocumentoDTO = new DocumentoDTO(); | 581 | $objDocumentoDTO = new DocumentoDTO(); |
584 | $objDocumentoDTO->retDblIdDocumento(); | 582 | $objDocumentoDTO->retDblIdDocumento(); |
@@ -586,17 +584,29 @@ try { | @@ -586,17 +584,29 @@ try { | ||
586 | $objDocumentoDTO->retDblIdProcedimento(); | 584 | $objDocumentoDTO->retDblIdProcedimento(); |
587 | $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); | 585 | $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); |
588 | $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo(); | 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 | //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 | 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 | if($bolListaDocumentoProcessoRestrito){ | 594 | if($bolListaDocumentoProcessoRestrito){ |
595 | if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){ | 595 | if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){ |
596 | die ("Erro ao Gerar Pdf"); | 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 | die ("Erro ao Gerar Pdf"); | 610 | die ("Erro ao Gerar Pdf"); |
601 | } | 611 | } |
602 | }else{ | 612 | }else{ |
@@ -604,13 +614,18 @@ try { | @@ -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,7 +793,6 @@ window.onclick = function(event) { | ||
778 | ?> | 793 | ?> |
779 | 794 | ||
780 | function gerarPdf() { | 795 | function gerarPdf() { |
781 | - | ||
782 | if (document.getElementById('hdnInfraItensSelecionados').value==''){ | 796 | if (document.getElementById('hdnInfraItensSelecionados').value==''){ |
783 | alert('Nenhum documento selecionado.'); | 797 | alert('Nenhum documento selecionado.'); |
784 | return; | 798 | return; |
sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php
@@ -36,12 +36,12 @@ class MdPesqParametroPesquisaRN extends InfraRN { | @@ -36,12 +36,12 @@ class MdPesqParametroPesquisaRN extends InfraRN { | ||
36 | protected function consultarConectado(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO){ | 36 | protected function consultarConectado(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO){ |
37 | try { | 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 | //$objInfraException->lancarValidacoes(); | 45 | //$objInfraException->lancarValidacoes(); |
46 | 46 | ||
47 | $objParametroPesquisaBD = new MdPesqParametroPesquisaBD($this->getObjInfraIBanco()); | 47 | $objParametroPesquisaBD = new MdPesqParametroPesquisaBD($this->getObjInfraIBanco()); |
@@ -122,24 +122,40 @@ class MdPesqParametroPesquisaRN extends InfraRN { | @@ -122,24 +122,40 @@ class MdPesqParametroPesquisaRN extends InfraRN { | ||
122 | throw new InfraException('Erro listando Parâmetro da Pesquisas.',$e); | 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 | private function validarStrNome(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ | 159 | private function validarStrNome(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ |
144 | if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrNome())){ | 160 | if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrNome())){ |
145 | $objInfraException->adicionarValidacao('Nome não informado.'); | 161 | $objInfraException->adicionarValidacao('Nome não informado.'); |