Skip to content

Commit

Permalink
Merge pull request #2488 from projeto-siga/release/11.4
Browse files Browse the repository at this point in the history
Release/11.4 - AJuste no WF para inibir funcionalidade para usuario externo - AProvado
  • Loading branch information
jmolivei authored Apr 19, 2024
2 parents db9e78e + 988f852 commit b7d50bb
Show file tree
Hide file tree
Showing 17 changed files with 104 additions and 11 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<properties>
<!-- Registro Centralizado da PATCH versão do SIGA -->

<patch.version>6</patch.version>
<patch.version>8</patch.version>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>8</java.version>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package br.gov.jfrj.siga.cp.logic;

import com.crivano.jlogic.Expression;
import com.crivano.jlogic.JLogic;

import br.gov.jfrj.siga.dp.DpPessoa;

public class CpEhUsuarioInterno implements Expression {

private DpPessoa titular;

public CpEhUsuarioInterno(DpPessoa titular) {
this.titular = titular;

}

@Override
public boolean eval() {
return ! (titular != null && titular.isUsuarioExterno());
}

@Override
public String explain(boolean result) {
return JLogic.NOT + " é Usuário Interno";
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ protected Expression create() {
Not.of(new ExEstaPendenteDeAssinatura(doc)),

Not.of(new ExEstaAgendadaPublicacaoNoDiario(doc)),

Not.of(new ExEstaPublicadoNoBoletim(doc)),

Not.of(new ExEstaSolicitadaPublicacaoNoBoletim(doc)),

Not.of(new ExEstaSemEfeito(doc)),

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,23 @@
import com.crivano.jlogic.CompositeExpressionSupport;
import com.crivano.jlogic.Expression;
import com.crivano.jlogic.JLogic;
import com.crivano.jlogic.Not;

import br.gov.jfrj.siga.dp.DpLotacao;
import br.gov.jfrj.siga.dp.DpPessoa;
import br.gov.jfrj.siga.ex.ExDocumento;
import br.gov.jfrj.siga.ex.ExMobil;

public class ExPodeAgendarPublicacaoNoBoletim extends CompositeExpressionSupport {

private ExMobil mob;
private ExDocumento doc;
private DpPessoa titular;
private DpLotacao lotaTitular;

public ExPodeAgendarPublicacaoNoBoletim(ExMobil mob, DpPessoa titular, DpLotacao lotaTitular) {
this.mob = mob;
this.doc = mob.doc();
this.titular = titular;
this.lotaTitular = lotaTitular;
}
Expand Down Expand Up @@ -55,7 +59,7 @@ public String explain(boolean result) {
return JLogic.explain("antes das 17hs", result);
}

},
},

new ExPodeExibirBotaoDeAgendarPublicacaoNoBoletim(mob, titular, lotaTitular));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ protected Expression create() {
Not.of(new ExEstaPendenteDeAssinatura(mob.doc())),

Not.of(new ExEstaSolicitadaPublicacaoNoBoletim(mob.doc())),

Not.of(new ExEstaAgendadaPublicacaoNoDiario(mob.doc())),

Not.of(new ExEstaSolicitadaPublicacaoNoDiario(mob.doc())),

Not.of(new ExEstaArquivado(mob)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,12 @@ public static String getMesaVersao(DpPessoa titular, DpLotacao lotaTitular) {
mesaVersao = "2";
return mesaVersao;
}

public static boolean isProd() {
if ("prod".equals(Prop.get("/siga.ambiente")))
return true;
return false;
}


}
5 changes: 5 additions & 0 deletions siga-vraptor-module/src/main/resources/META-INF/libs.tld
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,9 @@
<function-class>br.gov.jfrj.siga.jee.SigaLibsEL</function-class>
<function-signature>java.lang.String getMesaVersao( br.gov.jfrj.siga.dp.DpPessoa, br.gov.jfrj.siga.dp.DpLotacao)</function-signature>
</function>
<function>
<name>isProd</name>
<function-class>br.gov.jfrj.siga.jee.SigaLibsEL</function-class>
<function-signature>java.lang.Boolean isProd()</function-signature>
</function>
</taglib>
6 changes: 6 additions & 0 deletions siga-wf/src/main/java/br/gov/jfrj/siga/wf/bl/WfBL.java
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,12 @@ public static void transferirDocumentosVinculados(WfProcedimento pi, String sigl
if (service.podeTransferir(principal, siglaTitular, true))
service.transferir(principal, destino, siglaTitular, true);
}

public static boolean isViaGeral(String principal) throws Exception
{
ExService service = Service.getExService();
return service.isViaGeral(principal);
}

public static void assertPodeTransferirDocumentosVinculados(WfTarefa ti, String siglaTitular) throws Exception {
String principal = ti.getInstanciaDeProcedimento().getPrincipal();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.crivano.jlogic.Expression;
import com.crivano.jlogic.Not;

import br.gov.jfrj.siga.cp.logic.CpEhUsuarioInterno;
import br.gov.jfrj.siga.dp.DpLotacao;
import br.gov.jfrj.siga.dp.DpPessoa;
import br.gov.jfrj.siga.wf.model.WfProcedimento;
Expand All @@ -23,7 +24,7 @@ public WfPodePegar(WfProcedimento pi, DpPessoa titular, DpLotacao lotaTitular) {

@Override
protected Expression create() {
return And.of(new WfEstaResponsavel(pi, titular, lotaTitular),
return And.of(new CpEhUsuarioInterno(titular), new WfEstaResponsavel(pi, titular, lotaTitular),
Not.of(new WfEstaPessoalmenteResponsavel(pi, titular)));
}
};
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package br.gov.jfrj.siga.wf.logic;

import com.crivano.jlogic.And;
import com.crivano.jlogic.CompositeExpressionSupport;
import com.crivano.jlogic.Expression;
import com.crivano.jlogic.Or;

import br.gov.jfrj.siga.base.AcaoVO;
import br.gov.jfrj.siga.base.AplicacaoException;
import br.gov.jfrj.siga.cp.logic.CpEhUsuarioInterno;
import br.gov.jfrj.siga.dp.DpLotacao;
import br.gov.jfrj.siga.dp.DpPessoa;
import br.gov.jfrj.siga.wf.model.WfProcedimento;
Expand All @@ -24,11 +26,11 @@ public WfPodePriorizar(WfProcedimento pi, DpPessoa titular, DpLotacao lotaTitula

@Override
protected Expression create() {
return Or.of(
return And.of(new CpEhUsuarioInterno(titular) ,Or.of(

new WfEstaResponsavel(pi, titular, lotaTitular),

new WfPodeEditarDiagrama(pi.getDefinicaoDeProcedimento(), titular, lotaTitular));
new WfPodeEditarDiagrama(pi.getDefinicaoDeProcedimento(), titular, lotaTitular)));

}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package br.gov.jfrj.siga.wf.logic;

import com.crivano.jlogic.And;
import com.crivano.jlogic.CompositeExpressionSupport;
import com.crivano.jlogic.Expression;
import com.crivano.jlogic.Or;

import br.gov.jfrj.siga.cp.logic.CpEhUsuarioInterno;
import br.gov.jfrj.siga.dp.DpLotacao;
import br.gov.jfrj.siga.dp.DpPessoa;
import br.gov.jfrj.siga.wf.model.WfProcedimento;
Expand All @@ -22,10 +24,10 @@ public WfPodeRedirecionar(WfProcedimento pi, DpPessoa titular, DpLotacao lotaTit

@Override
protected Expression create() {
return Or.of(
return And.of(new CpEhUsuarioInterno(titular) , Or.of(

new WfEstaResponsavel(pi, titular, lotaTitular),

new WfPodeEditarDiagrama(pi.getDefinicaoDeProcedimento(), titular, lotaTitular));
new WfPodeEditarDiagrama(pi.getDefinicaoDeProcedimento(), titular, lotaTitular)));
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.crivano.jlogic.Not;
import com.crivano.jlogic.Or;

import br.gov.jfrj.siga.cp.logic.CpEhUsuarioInterno;
import br.gov.jfrj.siga.dp.DpLotacao;
import br.gov.jfrj.siga.dp.DpPessoa;
import br.gov.jfrj.siga.wf.model.WfProcedimento;
Expand All @@ -24,7 +25,7 @@ public WfPodeTerminar(WfProcedimento pi, DpPessoa titular, DpLotacao lotaTitular

@Override
protected Expression create() {
return And.of(Not.of(new WfEstaTerminado(pi)), Or.of(new WfEstaResponsavel(pi, titular, lotaTitular),
return And.of(new CpEhUsuarioInterno(titular) ,Not.of(new WfEstaTerminado(pi)), Or.of(new WfEstaResponsavel(pi, titular, lotaTitular),
// And.of(new WfEstaSemResponsavel(pi),
new WfPodeEditarDiagrama(pi.getDefinicaoDeProcedimento(), titular, lotaTitular)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import br.gov.jfrj.siga.base.DateUtils;
import br.gov.jfrj.siga.base.util.Utils;
import br.gov.jfrj.siga.cp.CpIdentidade;
import br.gov.jfrj.siga.cp.logic.CpEhUsuarioInterno;
import br.gov.jfrj.siga.cp.util.CpProcessadorReferencias;
import br.gov.jfrj.siga.dp.CpOrgaoUsuario;
import br.gov.jfrj.siga.dp.DpLotacao;
Expand All @@ -56,6 +57,7 @@
import br.gov.jfrj.siga.wf.logic.PodeSim;
import br.gov.jfrj.siga.wf.logic.WfPodeEditarVariaveis;
import br.gov.jfrj.siga.wf.logic.WfPodePegar;
import br.gov.jfrj.siga.wf.logic.WfPodePriorizar;
import br.gov.jfrj.siga.wf.logic.WfPodeRedirecionar;
import br.gov.jfrj.siga.wf.logic.WfPodeTerminar;
import br.gov.jfrj.siga.wf.model.enm.WfPrioridade;
Expand Down Expand Up @@ -627,7 +629,7 @@ public List<AcaoVO> getAcoes(DpPessoa titular, DpLotacao lotaTitular) {
.exp(new WfPodePegar(this, titular, lotaTitular)).post(true).build());

set.add(AcaoVO.builder().nome("_Priorizar").icone("text_list_numbers").modal("priorizarModal")
.exp(new PodeSim()).build());
.exp(new WfPodePriorizar(this, titular, lotaTitular)).build());

set.add(AcaoVO.builder().nome("_Redirecionar").icone("arrow_branch").modal("redirecionarModal")
.exp(new WfPodeRedirecionar(this, titular, lotaTitular)).build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ public String publicarDocumentoPortal(String siglaDocumento, String cadastranteS

@WebMethod
public Boolean isModeloIncluso(String codigoDocumentoVia, Long idModelo, Date depoisDaData) throws Exception;

@WebMethod
public Boolean isViaGeral(String codigoDocumentoVia) throws Exception;

@WebMethod
public void incluirCopiaDeDocumento(String siglaCadastrante, String siglaMobilPai, String siglaMobilFilho)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -932,6 +932,21 @@ public Boolean isModeloIncluso(String codigoDocumento, Long idModelo, Date depoi
}
}

public Boolean isViaGeral(String codigoDocumento) throws Exception {
try (ExSoapContext ctx = new ExSoapContext(false)) {
try {
ExMobil mob = buscarMobil(codigoDocumento);
if (mob.isGeral())
return true;
return false;
} catch (Exception ex) {
Exception e = ctx.exceptionWithMessageFileAndLine(ex);
ctx.rollback(e);
throw e; }
}
}


public Boolean isAuxiliarIncluso(String codigoDocumento, Date depoisDaData) throws Exception {
try (ExSoapContext ctx = new ExSoapContext(false)) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ public void iniciar(Long pdId, Long tdId, WfTipoDePrincipal tipoDePrincipal, Str
SelecaoGenerica documentoRefSel) throws Exception {
if (documentoRefSel != null && documentoRefSel.getSigla() != null) {
principal = documentoRefSel.getSigla();
if (WfBL.isViaGeral(principal))
throw new RuntimeException("Não é possivel iniciar um procedimento a partir da via geral do documento. Escolha outra via.");
}
if (pdId == null)
throw new RuntimeException("Identificador da definição de procedimento não encontrado");
Expand Down
14 changes: 12 additions & 2 deletions sigawf/src/main/webapp/paginas/menus/menu.jsp
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@

<%@ include file="/WEB-INF/page/include.jsp"%>

<c:if
test="${f:podeUtilizarServicoPorConfiguracao(titular,lotaTitular,'SIGA;WF;PR:Procedimentos')}">
<li class="nav-item dropdown"><a href="javascript:void(0);"
class="nav-link dropdown-toggle" data-toggle="dropdown">Procedimentos</a>
<ul class="dropdown-menu">
<c:if
test="${f:podeUtilizarServicoPorConfiguracao(titular,lotaTitular,'SIGA;WF;PR;PES:Pesquisar')}">
<li><a class="dropdown-item"
href="${linkTo[WfAppController].pesquisar}">Pesquisar</a></li>
</c:if>
<c:if
test="${f:podeUtilizarServicoPorConfiguracao(titular,lotaTitular,'SIGA;WF;INI:Iniciar')}">
test="${f:podeUtilizarServicoPorConfiguracao(titular,lotaTitular,'SIGA;WF;PR;INI:Iniciar')}">
<li><a class="dropdown-item"
href="${linkTo[WfAppController].listarParaIniciar}">Iniciar</a></li>
</c:if>
<c:if
test="${f:podeUtilizarServicoPorConfiguracao(titular,lotaTitular,'SIGA;WF;PR;ATI:Ativos')}">
<li><a class="dropdown-item"
href="${linkTo[WfAppController].ativos}">Ativos</a></li>
</ul> <c:if
</c:if>
</ul>
</c:if>
<c:if
test="${f:podeUtilizarServicoPorConfiguracao(titular,lotaTitular,'SIGA;WF;FE:Ferramentas')}">
<li class="nav-item dropdown"><a href="javascript:void(0);"
class="nav-link dropdown-toggle" data-toggle="dropdown">Ferramentas</a>
Expand Down

0 comments on commit b7d50bb

Please sign in to comment.