MdWsSeiCredenciamentoRN.php
5.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?
require_once dirname(__FILE__).'/../../../SEI.php';
class MdWsSeiCredenciamentoRN extends InfraRN {
protected function inicializarObjInfraIBanco(){
return BancoSEI::getInstance();
}
/**
* Concede a credencial de acesso a um processo sigiloso
* @param ConcederCredencialDTO $concederCredencialDTO
* @return array
*/
protected function concederCredenciamentoControlado(ConcederCredencialDTO $concederCredencialDTO){
try{
if(!$concederCredencialDTO->isSetDblIdProcedimento() || !$concederCredencialDTO->getDblIdProcedimento()){
throw new Exception('Processo não informado!');
}
if(!$concederCredencialDTO->isSetNumIdUnidade() || !$concederCredencialDTO->getNumIdUnidade()){
throw new Exception('Unidade não informada!');
}
if(!$concederCredencialDTO->isSetNumIdUsuario() || !$concederCredencialDTO->getNumIdUsuario()){
throw new Exception('Usuário não informado!');
}
$atividadeRN = new AtividadeRN();
$pesquisaPendenciaDTO = new PesquisaPendenciaDTO();
$pesquisaPendenciaDTO->setDblIdProtocolo($concederCredencialDTO->getDblIdProcedimento());
$pesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
$pesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
$arrProcedimentoDTO = $atividadeRN->listarPendenciasRN0754($pesquisaPendenciaDTO);
if (count($arrProcedimentoDTO)==0){
throw new Exception('Processo não encontrado.');
}
$arrAtividadesOrigem = $arrProcedimentoDTO[0]->getArrObjAtividadeDTO();
$concederCredencialDTO->setArrAtividadesOrigem($arrAtividadesOrigem);
$atividadeRN->concederCredencial($concederCredencialDTO);
return MdWsSeiRest::formataRetornoSucessoREST("Credencial concedida com sucesso!");
}catch (Exception $e){
return MdWsSeiRest::formataRetornoErroREST($e);
}
}
/**
* Remove a credencial de acesso a um processo sigiloso
* @param AtividadeDTO $atividadeDTO
* @return array
*/
protected function cassarCredencialControlado(AtividadeDTO $atividadeDTO){
try{
if(!$atividadeDTO->isSetNumIdAtividade() || !$atividadeDTO->getNumIdAtividade()){
throw new Exception('Atividade não informado!');
}
$objAtividadeRN = new AtividadeRN();
$objAtividadeRN->cassarCredenciais(array($atividadeDTO));
return MdWsSeiRest::formataRetornoSucessoREST("Credencial cassada com sucesso!");
}catch (Exception $e){
return MdWsSeiRest::formataRetornoErroREST($e);
}
}
/**
* Lista as credenciais de acesso de um processo sigiloso
* @param ProcedimentoDTO $procedimentoDTOParam
* @return array
*/
protected function listarCredenciaisProcessoConectado(ProcedimentoDTO $procedimentoDTOParam){
try{
if(!$procedimentoDTOParam->isSetDblIdProcedimento() || !$procedimentoDTOParam->getDblIdProcedimento()){
throw new Exception('Atividade não informado!');
}
if(is_null($procedimentoDTOParam->getNumPaginaAtual())){
$procedimentoDTOParam->setNumPaginaAtual(0);
}
if (!$procedimentoDTOParam->isSetNumMaxRegistrosRetorno()) {
$procedimentoDTOParam->setNumMaxRegistrosRetorno(10);
}
$result = array();
$objAtividadeRN = new MdWsSeiAtividadeRN();
$ret = $objAtividadeRN->listarCredenciais($procedimentoDTOParam);
/** @var AtividadeDTO $atividadeDTO */
foreach($ret as $atividadeDTO){
$dataCassacao = null;
foreach ($atividadeDTO->getArrObjAtributoAndamentoDTO() as $atributoAndamentoDTO) {
if ($atributoAndamentoDTO->getStrNome() == 'DATA_HORA') {
$dataCassacao .= substr($atributoAndamentoDTO->getStrValor(), 0, 16);
}
}
$result[] = array(
'atividade' => $atividadeDTO->getNumIdAtividade(),
'siglaUsuario' => $atividadeDTO->getStrSiglaUsuario(),
'siglaUnidade' => $atividadeDTO->getStrSiglaUnidade(),
'nomeUsuario' => $atividadeDTO->getStrNomeUsuario(),
'descricaoUnidade' => $atividadeDTO->getStrDescricaoUnidade(),
'dataAbertura' => substr($atividadeDTO->getDthAbertura(),0,16),
'credencialCassada' => in_array($atividadeDTO->getNumIdTarefa(), TarefaRN::getArrTarefasCassacaoCredencial(false)),
'dataCassacao' => $dataCassacao,
);
}
return MdWsSeiRest::formataRetornoSucessoREST(null, $result, $procedimentoDTOParam->getNumTotalRegistros());
}catch (Exception $e){
return MdWsSeiRest::formataRetornoErroREST($e);
}
}
/**
* Método de reununcia de credencial de acesso
* @param ProcedimentoDTO $procedimentoDTO
* @return array
*/
protected function renunciarCredencialControlado(ProcedimentoDTO $procedimentoDTO){
try{
$temPermissao = SessaoSEI::getInstance()->verificarPermissao('procedimento_credencial_renunciar');
if(!$temPermissao){
throw new Exception("O usuário não tem permissão para renunciar!");
}
if(!$procedimentoDTO->isSetDblIdProcedimento()){
throw new Exception("O processo não foi informado!");
}
$atividadeRN = new AtividadeRN();
$atividadeRN->renunciarCredenciais($procedimentoDTO);
return MdWsSeiRest::formataRetornoSucessoREST("Credencial renunciada com sucesso!");
}catch (Exception $e){
return MdWsSeiRest::formataRetornoErroREST($e);
}
}
}