Commit 5c520265d4bbd93bb0fc8048806e13cf34b2f8e5
1 parent
b8d3017b
Exists in
master
[3576] - Ajustar modelo e cadastros: Tipo de documento, tipo de processo, documento e processo.
Showing
22 changed files
with
897 additions
and
340 deletions
Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/dao/CredencialProcessoDao.java
| ... | ... | @@ -95,4 +95,41 @@ public interface CredencialProcessoDao extends CitGenericDAO { |
| 95 | 95 | */ |
| 96 | 96 | CredencialProcesso obterPorGrupoEProcesso(Long idProcesso, Long idGrupo); |
| 97 | 97 | |
| 98 | + /** | |
| 99 | + * <p> | |
| 100 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 101 | + * </p> | |
| 102 | + * | |
| 103 | + * <p> | |
| 104 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 105 | + * </p> | |
| 106 | + * | |
| 107 | + * Método responsável por verificar se o usuario contem credencial | |
| 108 | + * | |
| 109 | + * @author rogerio.costa | |
| 110 | + * | |
| 111 | + * @param idUsuario | |
| 112 | + * @param idProcesso | |
| 113 | + * @return Boolean | |
| 114 | + */ | |
| 115 | + Boolean contemCredencial(Long idUsuario, Long idProcesso); | |
| 116 | + | |
| 117 | + /** | |
| 118 | + * <p> | |
| 119 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 120 | + * </p> | |
| 121 | + * | |
| 122 | + * <p> | |
| 123 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 124 | + * </p> | |
| 125 | + * | |
| 126 | + * Método responsável por listar através do id do processo | |
| 127 | + * | |
| 128 | + * @author rogerio.costa | |
| 129 | + * | |
| 130 | + * @param idProcesso | |
| 131 | + * @return Collection<CredencialProcesso> | |
| 132 | + */ | |
| 133 | + Collection<CredencialProcesso> findByIdProcesso(Long idProcesso); | |
| 134 | + | |
| 98 | 135 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/dao/HistoricoCredencialProcessoDao.java
| ... | ... | @@ -2,6 +2,7 @@ package br.com.centralit.api.dao; |
| 2 | 2 | |
| 3 | 3 | import java.util.Collection; |
| 4 | 4 | |
| 5 | +import br.com.centralit.api.model.CredencialProcesso; | |
| 5 | 6 | import br.com.centralit.api.model.HistoricoCredencialProcesso; |
| 6 | 7 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
| 7 | 8 | |
| ... | ... | @@ -58,4 +59,23 @@ public interface HistoricoCredencialProcessoDao extends CitGenericDAO { |
| 58 | 59 | */ |
| 59 | 60 | Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso); |
| 60 | 61 | |
| 62 | + /** | |
| 63 | + * <p> | |
| 64 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 65 | + * </p> | |
| 66 | + * | |
| 67 | + * <p> | |
| 68 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 69 | + * </p> | |
| 70 | + * | |
| 71 | + * Método responsável por listar através da credencial e credenciado | |
| 72 | + * | |
| 73 | + * @author rogerio.costa | |
| 74 | + * | |
| 75 | + * @param credencialProcesso | |
| 76 | + * | |
| 77 | + * @return HistoricoCredencialProcesso | |
| 78 | + */ | |
| 79 | + HistoricoCredencialProcesso findByCredencialAndCredenciado(CredencialProcesso credencialProcesso); | |
| 80 | + | |
| 61 | 81 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/CredencialProcessoDaoHibernate.java
| ... | ... | @@ -175,4 +175,58 @@ public class CredencialProcessoDaoHibernate extends CitGenericDAOImpl implements |
| 175 | 175 | return this.searchUnique(searchSeven, persistentClass); |
| 176 | 176 | } |
| 177 | 177 | |
| 178 | + /** | |
| 179 | + * <p> | |
| 180 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 181 | + * </p> | |
| 182 | + * | |
| 183 | + * <p> | |
| 184 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 185 | + * </p> | |
| 186 | + * | |
| 187 | + * Método responsável por verificar se o usuario contem credencial | |
| 188 | + * | |
| 189 | + * @author rogerio.costa | |
| 190 | + * | |
| 191 | + * @param idUsuario | |
| 192 | + * @param idProcesso | |
| 193 | + * @return Boolean | |
| 194 | + */ | |
| 195 | + public Boolean contemCredencial(Long idUsuario, Long idProcesso) { | |
| 196 | + | |
| 197 | + SearchSeven searchSeven = new SearchSeven(); | |
| 198 | + | |
| 199 | + searchSeven.addFilterEqual("processo.id", idProcesso); | |
| 200 | + | |
| 201 | + searchSeven.addFilterEqual("usuario.id", idUsuario); | |
| 202 | + | |
| 203 | + return UtilObjeto.isReferencia(this.search(searchSeven)); | |
| 204 | + } | |
| 205 | + | |
| 206 | + /** | |
| 207 | + * <p> | |
| 208 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 209 | + * </p> | |
| 210 | + * | |
| 211 | + * <p> | |
| 212 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 213 | + * </p> | |
| 214 | + * | |
| 215 | + * Método responsável por listar através do id do processo | |
| 216 | + * | |
| 217 | + * @author rogerio.costa | |
| 218 | + * | |
| 219 | + * @param idProcesso | |
| 220 | + * @return Collection<CredencialProcesso> | |
| 221 | + */ | |
| 222 | + public Collection<CredencialProcesso> findByIdProcesso(Long idProcesso) { | |
| 223 | + | |
| 224 | + SearchSeven searchSeven = new SearchSeven(); | |
| 225 | + | |
| 226 | + searchSeven.addFilterEqual("processo.id", idProcesso); | |
| 227 | + | |
| 228 | + return this.search(searchSeven); | |
| 229 | + | |
| 230 | + } | |
| 231 | + | |
| 178 | 232 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/HistoricoCredencialProcessoDaoHibernate.java
| ... | ... | @@ -81,4 +81,38 @@ public class HistoricoCredencialProcessoDaoHibernate extends CitGenericDAOImpl i |
| 81 | 81 | |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | + /** | |
| 85 | + * <p> | |
| 86 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 87 | + * </p> | |
| 88 | + * | |
| 89 | + * <p> | |
| 90 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 91 | + * </p> | |
| 92 | + * | |
| 93 | + * Método responsável por listar através da credencial e credenciado | |
| 94 | + * | |
| 95 | + * @author rogerio.costa | |
| 96 | + * | |
| 97 | + * @param credencialProcesso | |
| 98 | + * | |
| 99 | + * @return HistoricoCredencialProcesso | |
| 100 | + */ | |
| 101 | + public HistoricoCredencialProcesso findByCredencialAndCredenciado(CredencialProcesso credencialProcesso) { | |
| 102 | + | |
| 103 | + SearchSeven searchSeven = new SearchSeven(); | |
| 104 | + | |
| 105 | + searchSeven.addFilterEqual("credencialProcesso.id", credencialProcesso.getId()); | |
| 106 | + | |
| 107 | + if (UtilObjeto.isReferencia(credencialProcesso.getGrupo())) { | |
| 108 | + | |
| 109 | + searchSeven.addFilterEqual("grupo.id", credencialProcesso.getGrupo().getId()); | |
| 110 | + } else { | |
| 111 | + | |
| 112 | + searchSeven.addFilterEqual("usuario.id", credencialProcesso.getUsuario().getId()); | |
| 113 | + } | |
| 114 | + | |
| 115 | + return this.searchUnique(searchSeven); | |
| 116 | + } | |
| 117 | + | |
| 84 | 118 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/model/CredencialProcesso.java
| ... | ... | @@ -10,11 +10,13 @@ import javax.persistence.GenerationType; |
| 10 | 10 | import javax.persistence.Id; |
| 11 | 11 | import javax.persistence.ManyToOne; |
| 12 | 12 | import javax.persistence.OneToMany; |
| 13 | +import javax.persistence.Transient; | |
| 13 | 14 | |
| 14 | 15 | import br.com.centralit.framework.json.Views; |
| 15 | 16 | import br.com.centralit.framework.model.Grupo; |
| 16 | 17 | import br.com.centralit.framework.model.Usuario; |
| 17 | 18 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; |
| 19 | +import br.com.centralit.framework.util.UtilObjeto; | |
| 18 | 20 | |
| 19 | 21 | import com.fasterxml.jackson.annotation.JsonView; |
| 20 | 22 | |
| ... | ... | @@ -70,6 +72,15 @@ public class CredencialProcesso extends PersistentObjectAudit { |
| 70 | 72 | @JsonView({ Views.CredencialProcessoView.class }) |
| 71 | 73 | private String icon; |
| 72 | 74 | |
| 75 | + /** Atributo idTask. */ | |
| 76 | + @JsonView({ Views.CredencialProcessoView.class }) | |
| 77 | + private Long idTask; | |
| 78 | + | |
| 79 | + /** Atributo permiteEdicao. */ | |
| 80 | + @Transient | |
| 81 | + @JsonView({ Views.CredencialProcessoView.class }) | |
| 82 | + private Boolean permiteEdicao; | |
| 83 | + | |
| 73 | 84 | /** Atributo processo. */ |
| 74 | 85 | @ManyToOne(fetch = FetchType.LAZY) |
| 75 | 86 | @JsonView({ Views.CredencialProcessoView.class}) | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/model/HistoricoCredencialProcesso.java
| ... | ... | @@ -14,6 +14,7 @@ import javax.persistence.TemporalType; |
| 14 | 14 | import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; |
| 15 | 15 | import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; |
| 16 | 16 | import br.com.centralit.framework.json.Views; |
| 17 | +import br.com.centralit.framework.model.Grupo; | |
| 17 | 18 | import br.com.centralit.framework.model.Usuario; |
| 18 | 19 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; |
| 19 | 20 | import br.com.centralit.framework.util.UtilObjeto; |
| ... | ... | @@ -73,6 +74,13 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { |
| 73 | 74 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
| 74 | 75 | private Calendar dataDescredenciado; |
| 75 | 76 | |
| 77 | + /** Atributo dataDescredenciamento. */ | |
| 78 | + @Temporal(TemporalType.TIMESTAMP) | |
| 79 | + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) | |
| 80 | + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) | |
| 81 | + @JsonView({ Views.HistoricoCredencialProcesso.class }) | |
| 82 | + private Calendar dataDescredenciamento; | |
| 83 | + | |
| 76 | 84 | /** Atributo credencialProcesso. */ |
| 77 | 85 | @ManyToOne(fetch = FetchType.LAZY) |
| 78 | 86 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
| ... | ... | @@ -83,6 +91,38 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { |
| 83 | 91 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
| 84 | 92 | private Usuario descredenciador; |
| 85 | 93 | |
| 94 | + @ManyToOne(fetch = FetchType.LAZY) | |
| 95 | + @JsonView({ Views.HistoricoCredencialProcesso.class }) | |
| 96 | + private Grupo grupo; | |
| 97 | + | |
| 98 | + /** Atributo usuario. */ | |
| 99 | + @ManyToOne(fetch = FetchType.LAZY) | |
| 100 | + @JsonView({ Views.HistoricoCredencialProcesso.class }) | |
| 101 | + private Usuario usuario; | |
| 102 | + | |
| 103 | + /** | |
| 104 | + * Responsável pela criação de novas instâncias desta classe. | |
| 105 | + */ | |
| 106 | + public HistoricoCredencialProcesso() { | |
| 107 | + | |
| 108 | + super(); | |
| 109 | + } | |
| 110 | + | |
| 111 | + /** | |
| 112 | + * Responsável pela criação de novas instâncias desta classe. | |
| 113 | + * | |
| 114 | + * @param dataDescredenciado | |
| 115 | + * @param credencialProcesso | |
| 116 | + * @param descredenciador | |
| 117 | + */ | |
| 118 | + public HistoricoCredencialProcesso( Calendar dataDescredenciado, CredencialProcesso credencialProcesso, Usuario descredenciador ) { | |
| 119 | + | |
| 120 | + this.dataDescredenciado = dataDescredenciado; | |
| 121 | + this.credencialProcesso = credencialProcesso; | |
| 122 | + this.descredenciador = descredenciador; | |
| 123 | + | |
| 124 | + } | |
| 125 | + | |
| 86 | 126 | /** |
| 87 | 127 | * Retorna o valor do atributo <code>id</code> |
| 88 | 128 | * |
| ... | ... | @@ -163,6 +203,66 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { |
| 163 | 203 | this.descredenciador = descredenciador; |
| 164 | 204 | } |
| 165 | 205 | |
| 206 | + /** | |
| 207 | + * Retorna o valor do atributo <code>dataDescredenciamento</code> | |
| 208 | + * | |
| 209 | + * @return <code>Calendar</code> | |
| 210 | + */ | |
| 211 | + public Calendar getDataDescredenciamento() { | |
| 212 | + | |
| 213 | + return dataDescredenciamento; | |
| 214 | + } | |
| 215 | + | |
| 216 | + /** | |
| 217 | + * Define o valor do atributo <code>dataDescredenciamento</code>. | |
| 218 | + * | |
| 219 | + * @param dataDescredenciamento | |
| 220 | + */ | |
| 221 | + public void setDataDescredenciamento(Calendar dataDescredenciamento) { | |
| 222 | + | |
| 223 | + this.dataDescredenciamento = dataDescredenciamento; | |
| 224 | + } | |
| 225 | + | |
| 226 | + /** | |
| 227 | + * Retorna o valor do atributo <code>grupo</code> | |
| 228 | + * | |
| 229 | + * @return <code>Grupo</code> | |
| 230 | + */ | |
| 231 | + public Grupo getGrupo() { | |
| 232 | + | |
| 233 | + return grupo; | |
| 234 | + } | |
| 235 | + | |
| 236 | + /** | |
| 237 | + * Define o valor do atributo <code>grupo</code>. | |
| 238 | + * | |
| 239 | + * @param grupo | |
| 240 | + */ | |
| 241 | + public void setGrupo(Grupo grupo) { | |
| 242 | + | |
| 243 | + this.grupo = grupo; | |
| 244 | + } | |
| 245 | + | |
| 246 | + /** | |
| 247 | + * Retorna o valor do atributo <code>usuario</code> | |
| 248 | + * | |
| 249 | + * @return <code>Usuario</code> | |
| 250 | + */ | |
| 251 | + public Usuario getUsuario() { | |
| 252 | + | |
| 253 | + return usuario; | |
| 254 | + } | |
| 255 | + | |
| 256 | + /** | |
| 257 | + * Define o valor do atributo <code>usuario</code>. | |
| 258 | + * | |
| 259 | + * @param usuario | |
| 260 | + */ | |
| 261 | + public void setUsuario(Usuario usuario) { | |
| 262 | + | |
| 263 | + this.usuario = usuario; | |
| 264 | + } | |
| 265 | + | |
| 166 | 266 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
| 167 | 267 | public String getUnidadeUsuarioCredenciado() { |
| 168 | 268 | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
| ... | ... | @@ -143,7 +143,7 @@ public class Processo extends PersistentObjectUnidade { |
| 143 | 143 | @ManyToOne(fetch = FetchType.LAZY) |
| 144 | 144 | @JsonView({ Views.ProcessoList.class }) |
| 145 | 145 | private NivelAcessoTipoProcesso nivelAcesso; |
| 146 | - | |
| 146 | + | |
| 147 | 147 | @ManyToOne(fetch = FetchType.LAZY) |
| 148 | 148 | @JsonView({ Views.ProcessoList.class }) |
| 149 | 149 | private NivelAcessoTipoProcesso nivelAcessoOriginal; | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java
| ... | ... | @@ -70,9 +70,6 @@ public class TipoProcesso extends PersistentObjectUnidade { |
| 70 | 70 | @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoList.class, Views.ProcessoRelacionadoList.class }) |
| 71 | 71 | private String nome; |
| 72 | 72 | |
| 73 | - @Field | |
| 74 | - private String name; | |
| 75 | - | |
| 76 | 73 | /** Atributo nome. */ |
| 77 | 74 | @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoEdit.class }) |
| 78 | 75 | private String processoNegocio; |
| ... | ... | @@ -207,24 +204,4 @@ public class TipoProcesso extends PersistentObjectUnidade { |
| 207 | 204 | this.processoNegocio = processoNegocio; |
| 208 | 205 | } |
| 209 | 206 | |
| 210 | - /** | |
| 211 | - * Retorna o valor do atributo <code>name</code> | |
| 212 | - * | |
| 213 | - * @return <code>String</code> | |
| 214 | - */ | |
| 215 | - public String getName() { | |
| 216 | - | |
| 217 | - return name; | |
| 218 | - } | |
| 219 | - | |
| 220 | - /** | |
| 221 | - * Define o valor do atributo <code>name</code>. | |
| 222 | - * | |
| 223 | - * @param name | |
| 224 | - */ | |
| 225 | - public void setName(String name) { | |
| 226 | - | |
| 227 | - this.name = name; | |
| 228 | - } | |
| 229 | - | |
| 230 | 207 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java
| ... | ... | @@ -4,7 +4,6 @@ import java.util.Collection; |
| 4 | 4 | |
| 5 | 5 | import br.com.centralit.api.model.CredencialProcesso; |
| 6 | 6 | import br.com.centralit.api.model.Processo; |
| 7 | -import br.com.centralit.api.viewHelper.CredencialUsuarioVH; | |
| 8 | 7 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; |
| 9 | 8 | import br.com.centralit.api.viewHelper.HerancaSistemaVH; |
| 10 | 9 | import br.com.centralit.framework.service.arquitetura.GenericService; |
| ... | ... | @@ -123,14 +122,82 @@ public interface CredencialProcessoService extends GenericService<CredencialProc |
| 123 | 122 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 124 | 123 | * </p> |
| 125 | 124 | * |
| 126 | - * Método responsável por montar um objeto com a credencial do usuario com base nas funcionalidades do sistema | |
| 125 | + * Método responsável por verificar se o usuario tem permissão para credenciar | |
| 126 | + * | |
| 127 | + * @author rogerio.costa | |
| 128 | + * | |
| 129 | + */ | |
| 130 | + Boolean isCredenciar(Long idProcesso); | |
| 131 | + | |
| 132 | + /** | |
| 133 | + * <p> | |
| 134 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 135 | + * </p> | |
| 136 | + * | |
| 137 | + * <p> | |
| 138 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 139 | + * </p> | |
| 140 | + * | |
| 141 | + * Método responsável por verificar se o usuario logado não é o criador do processo, e se contem uma credencial para o mesmo | |
| 142 | + * | |
| 143 | + * @author rogerio.costa | |
| 144 | + * | |
| 145 | + * @param idProcesso | |
| 146 | + * @return boolean | |
| 147 | + */ | |
| 148 | + Boolean permiteRenunciar(Long idProcesso); | |
| 149 | + | |
| 150 | + /** | |
| 151 | + * <p> | |
| 152 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 153 | + * </p> | |
| 154 | + * | |
| 155 | + * <p> | |
| 156 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 157 | + * </p> | |
| 158 | + * | |
| 159 | + * Método responsável por renunciar credencial. | |
| 127 | 160 | * |
| 128 | 161 | * @author rogerio.costa |
| 129 | 162 | * |
| 130 | 163 | * @param idProcesso |
| 164 | + */ | |
| 165 | + Boolean renunciar(Long idProcesso); | |
| 166 | + | |
| 167 | + /** | |
| 168 | + * <p> | |
| 169 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 170 | + * </p> | |
| 131 | 171 | * |
| 132 | - * @return CredencialUsuarioVH | |
| 172 | + * <p> | |
| 173 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 174 | + * </p> | |
| 175 | + * | |
| 176 | + * Método responsável por listar através do id do processo | |
| 177 | + * | |
| 178 | + * @author rogerio.costa | |
| 179 | + * | |
| 180 | + * @param idProcesso | |
| 181 | + * @return Collection<CredencialProcesso> | |
| 182 | + */ | |
| 183 | + Collection<CredencialProcesso> findByIdProcesso(Long id); | |
| 184 | + | |
| 185 | + /** | |
| 186 | + * <p> | |
| 187 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 188 | + * </p> | |
| 189 | + * | |
| 190 | + * <p> | |
| 191 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 192 | + * </p> | |
| 193 | + * | |
| 194 | + * Método responsável por verificar se o usuarioLogado tem permissão no processo | |
| 195 | + * | |
| 196 | + * @author rogerio.costa | |
| 197 | + * | |
| 198 | + * @param idProcesso | |
| 199 | + * @return boolean | |
| 133 | 200 | */ |
| 134 | - CredencialUsuarioVH obterCredencialUsuarioLogado(Long idProcesso); | |
| 201 | + boolean contemPermissaoProcesso(Long idProcesso); | |
| 135 | 202 | |
| 136 | 203 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/HistoricoCredencialProcessoService.java
| ... | ... | @@ -2,6 +2,7 @@ package br.com.centralit.api.service; |
| 2 | 2 | |
| 3 | 3 | import java.util.Collection; |
| 4 | 4 | |
| 5 | +import br.com.centralit.api.model.CredencialProcesso; | |
| 5 | 6 | import br.com.centralit.api.model.HistoricoCredencialProcesso; |
| 6 | 7 | import br.com.centralit.framework.service.arquitetura.GenericService; |
| 7 | 8 | |
| ... | ... | @@ -58,4 +59,23 @@ public interface HistoricoCredencialProcessoService extends GenericService<Histo |
| 58 | 59 | */ |
| 59 | 60 | Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso); |
| 60 | 61 | |
| 62 | + /** | |
| 63 | + * <p> | |
| 64 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 65 | + * </p> | |
| 66 | + * | |
| 67 | + * <p> | |
| 68 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 69 | + * </p> | |
| 70 | + * | |
| 71 | + * Método responsável por listar através da credencial e credenciado | |
| 72 | + * | |
| 73 | + * @author rogerio.costa | |
| 74 | + * | |
| 75 | + * @param credencialProcesso | |
| 76 | + * | |
| 77 | + * @return HistoricoCredencialProcesso | |
| 78 | + */ | |
| 79 | + HistoricoCredencialProcesso findByCredencialAndCredenciado(CredencialProcesso credencialProcesso); | |
| 80 | + | |
| 61 | 81 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java
| 1 | 1 | package br.com.centralit.api.service.impl; |
| 2 | 2 | |
| 3 | -import java.util.ArrayList; | |
| 4 | 3 | import java.util.Collection; |
| 5 | -import java.util.HashMap; | |
| 6 | 4 | import java.util.LinkedList; |
| 7 | 5 | import java.util.List; |
| 8 | -import java.util.Map; | |
| 9 | 6 | |
| 10 | -import org.json.JSONObject; | |
| 11 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | 8 | import org.springframework.stereotype.Service; |
| 13 | 9 | |
| ... | ... | @@ -23,11 +19,8 @@ import br.com.centralit.api.service.HistoricoCredencialProcessoService; |
| 23 | 19 | import br.com.centralit.api.service.ProcessoService; |
| 24 | 20 | import br.com.centralit.api.service.SigiloService; |
| 25 | 21 | import br.com.centralit.api.service.UsuarioService; |
| 26 | -import br.com.centralit.api.viewHelper.CredencialUsuarioVH; | |
| 27 | 22 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; |
| 28 | 23 | import br.com.centralit.api.viewHelper.HerancaSistemaVH; |
| 29 | -import br.com.centralit.framework.esi.enumerated.VariableTypeEnum; | |
| 30 | -import br.com.centralit.framework.esi.environment.EnvironmentVariable; | |
| 31 | 24 | import br.com.centralit.framework.exception.BusinessException; |
| 32 | 25 | import br.com.centralit.framework.exception.CodigoErro; |
| 33 | 26 | import br.com.centralit.framework.model.Grupo; |
| ... | ... | @@ -95,8 +88,12 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 95 | 88 | @Autowired |
| 96 | 89 | private SigiloService sigiloService; |
| 97 | 90 | |
| 98 | - /** Atributo historicos. */ | |
| 99 | - private Collection<HistoricoCredencialProcesso> historicos; | |
| 91 | + /** | |
| 92 | + * Responsável pela criação de novas instâncias desta classe. | |
| 93 | + * | |
| 94 | + * @param credencialProcessoDao | |
| 95 | + */ | |
| 96 | + private static final String SEM_PERMISSAO_OPERACAO = "ECM.VALIDACAO.PERMISSAO_OPERACAO"; | |
| 100 | 97 | |
| 101 | 98 | /** |
| 102 | 99 | * Responsável pela criação de novas instâncias desta classe. |
| ... | ... | @@ -131,9 +128,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 131 | 128 | @Override |
| 132 | 129 | public Collection<CredencialProcesso> save(Collection<CredencialProcesso> credenciais) { |
| 133 | 130 | |
| 134 | - this.resolveTransiente(credenciais); | |
| 131 | + this.resolveTransiente((List<CredencialProcesso>) credenciais); | |
| 135 | 132 | |
| 136 | - return super.saveList((List<CredencialProcesso>) credenciais); | |
| 133 | + credenciais = super.saveList((List<CredencialProcesso>) credenciais); | |
| 134 | + | |
| 135 | + return this.montarPermissaoEdicao(credenciais); | |
| 137 | 136 | |
| 138 | 137 | } |
| 139 | 138 | |
| ... | ... | @@ -176,52 +175,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 176 | 175 | } |
| 177 | 176 | // Gera a credencial do usuario que crio o processo |
| 178 | 177 | super.save(new CredencialProcesso(processo, getUsuario())); |
| 179 | - | |
| 180 | - | |
| 181 | - } | |
| 182 | - | |
| 183 | - } | |
| 184 | - | |
| 185 | - /** | |
| 186 | - * <p> | |
| 187 | - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 188 | - * </p> | |
| 189 | - * | |
| 190 | - * <p> | |
| 191 | - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 192 | - * </p> | |
| 193 | - * | |
| 194 | - * Método responsável por startar o BusinessProcess do tipo sigiloso | |
| 195 | - * | |
| 196 | - * @author rogerio.costa | |
| 197 | - * | |
| 198 | - * @param processo | |
| 199 | - */ | |
| 200 | - private void startBusinessProcessSigiloso(Processo processo, Grupo grupoPadrao) { | |
| 201 | - | |
| 202 | - final List<EnvironmentVariable> variaveis = new ArrayList<EnvironmentVariable>(); | |
| 203 | - | |
| 204 | - final Map<String, Object> mapProcesso = new HashMap<String, Object>(); | |
| 205 | - | |
| 206 | - mapProcesso.put("nivelAcesso", processo.getNivelAcesso().getNivelAcesso().getDescricao()); | |
| 207 | - mapProcesso.put("nup", processo.getNup()); | |
| 208 | - mapProcesso.put("assunto", processo.getAssunto().getCodigo() + '/' + processo.getAssunto().getNome()); | |
| 209 | - final JSONObject processoJSON = new JSONObject(mapProcesso); | |
| 210 | - | |
| 211 | - variaveis.add(new EnvironmentVariable("idProcesso", VariableTypeEnum.LONG, processo.getId(), false)); | |
| 212 | - variaveis.add(new EnvironmentVariable("solicitante", VariableTypeEnum.TEXT, processo.getAutor().getUsername(), false)); | |
| 213 | - variaveis.add(new EnvironmentVariable("nup", VariableTypeEnum.JSON, processo.getNup(), false)); | |
| 214 | 178 | |
| 215 | - variaveis.add(new EnvironmentVariable("grupoPadrao", VariableTypeEnum.TEXT, grupoPadrao.getSigla(), false)); | |
| 216 | - | |
| 217 | - variaveis.add(new EnvironmentVariable("processoSIGAD", VariableTypeEnum.JSON, processoJSON, false)); | |
| 218 | - | |
| 219 | - if (processo.getTipoProcesso().getProcessoNegocio() == null) { | |
| 220 | - // O processo deverá estar vinculado a um fluxo no BPE/ESI | |
| 221 | - throw new BusinessException("ECM.VALIDACAO.ERRO_VINCULO_FLUXO_BPE_ESI", CodigoErro.REGRA_NEGOCIO.getValue()); | |
| 222 | 179 | } |
| 223 | 180 | |
| 224 | - this.startBusinessProcess(processo.getTipoProcesso().getProcessoNegocio(), variaveis); | |
| 225 | 181 | } |
| 226 | 182 | |
| 227 | 183 | /** |
| ... | ... | @@ -266,9 +222,10 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 266 | 222 | * |
| 267 | 223 | * @param credenciais |
| 268 | 224 | */ |
| 269 | - private void resolveTransiente(Collection<CredencialProcesso> credenciais) { | |
| 225 | + private void resolveTransiente(List<CredencialProcesso> credenciais) { | |
| 270 | 226 | |
| 271 | - this.historicos = new LinkedList<HistoricoCredencialProcesso>(); | |
| 227 | + List<String> grupos = new LinkedList<String>(); | |
| 228 | + List<String> usuarios = new LinkedList<String>(); | |
| 272 | 229 | |
| 273 | 230 | for (CredencialProcesso credencialProcesso : credenciais) { |
| 274 | 231 | |
| ... | ... | @@ -277,9 +234,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 277 | 234 | if (UtilObjeto.isReferencia(credencialProcesso.getGrupo())) { |
| 278 | 235 | |
| 279 | 236 | credencialProcesso.setGrupo(this.grupoService.getReference(credencialProcesso.getGrupo().getId())); |
| 237 | + grupos.add(credencialProcesso.getGrupo().getSigla()); | |
| 280 | 238 | } else { |
| 281 | 239 | |
| 282 | 240 | credencialProcesso.setUsuario(this.usuarioService.find(credencialProcesso.getUsuario().getId())); |
| 241 | + usuarios.add(credencialProcesso.getUsuario().getUsername()); | |
| 283 | 242 | |
| 284 | 243 | } |
| 285 | 244 | // Verifica se a credencial é nova, caso seja cria um histórico |
| ... | ... | @@ -287,8 +246,39 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 287 | 246 | |
| 288 | 247 | credencialProcesso.setHistoricoCredencialProcessos(new LinkedList<HistoricoCredencialProcesso>()); |
| 289 | 248 | credencialProcesso.getHistoricoCredencialProcessos().add(this.addHistorico(credencialProcesso)); |
| 249 | + // Delega o processo para os grupos e usuario credenciados | |
| 250 | + this.delegateUserTask(credencialProcesso.getIdTask(), grupos, usuarios); | |
| 290 | 251 | } |
| 291 | 252 | } |
| 253 | + | |
| 254 | + } | |
| 255 | + | |
| 256 | + /** | |
| 257 | + * <p> | |
| 258 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 259 | + * </p> | |
| 260 | + * | |
| 261 | + * <p> | |
| 262 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 263 | + * </p> | |
| 264 | + * | |
| 265 | + * Método responsável por verificar se o usuario logado não é o criador do processo, e se contem uma credencial para o mesmo | |
| 266 | + * | |
| 267 | + * @author rogerio.costa | |
| 268 | + * | |
| 269 | + * @param idProcesso | |
| 270 | + * @return boolean | |
| 271 | + */ | |
| 272 | + public Boolean permiteRenunciar(Long idProcesso) { | |
| 273 | + | |
| 274 | + Processo processo = this.processoService.getReference(idProcesso); | |
| 275 | + | |
| 276 | + if (!this.getUsuario().getId().equals(processo.getAutor().getId())) { | |
| 277 | + | |
| 278 | + return this.credencialProcessoDao.contemCredencial(this.getUsuario().getId(), idProcesso); | |
| 279 | + } | |
| 280 | + | |
| 281 | + return Boolean.FALSE; | |
| 292 | 282 | } |
| 293 | 283 | |
| 294 | 284 | /** |
| ... | ... | @@ -313,6 +303,13 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 313 | 303 | |
| 314 | 304 | historicoCredencialProcesso.setCredencialProcesso(credencialProcesso); |
| 315 | 305 | |
| 306 | + if (UtilObjeto.isReferencia(credencialProcesso.getGrupo())) { | |
| 307 | + | |
| 308 | + historicoCredencialProcesso.setGrupo(credencialProcesso.getGrupo()); | |
| 309 | + } else { | |
| 310 | + historicoCredencialProcesso.setUsuario(credencialProcesso.getUsuario()); | |
| 311 | + } | |
| 312 | + | |
| 316 | 313 | return historicoCredencialProcesso; |
| 317 | 314 | } |
| 318 | 315 | |
| ... | ... | @@ -321,10 +318,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 321 | 318 | |
| 322 | 319 | CredencialProcesso credencialProcesso = this.getReference(id); |
| 323 | 320 | |
| 324 | - credencialProcesso.setProcessoRemocao(credencialProcesso.getProcesso()); | |
| 325 | - credencialProcesso.setProcesso(null); | |
| 321 | + this.validarPermissaoRemover(credencialProcesso); | |
| 326 | 322 | |
| 327 | - this.saveHistoricoDescredenciado(credencialProcesso); | |
| 323 | + this.executarAcoesRemocao(credencialProcesso); | |
| 328 | 324 | |
| 329 | 325 | return super.removeById(id); |
| 330 | 326 | } |
| ... | ... | @@ -338,6 +334,87 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 338 | 334 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 339 | 335 | * </p> |
| 340 | 336 | * |
| 337 | + * Método responsável por validar a permissão | |
| 338 | + * | |
| 339 | + * @author rogerio.costa | |
| 340 | + * | |
| 341 | + * @param credencialProcesso | |
| 342 | + */ | |
| 343 | + private void validarPermissaoRemover(CredencialProcesso credencialProcesso) { | |
| 344 | + | |
| 345 | + if (!credencialProcesso.getAutor().getId().equals(this.getUsuario().getId()) && !this.contemPermissaoHerdada(credencialProcesso.getProcesso().getSigilo())) { | |
| 346 | + | |
| 347 | + throw new BusinessException(SEM_PERMISSAO_OPERACAO, CodigoErro.REGRA_NEGOCIO.getValue()); | |
| 348 | + | |
| 349 | + } | |
| 350 | + } | |
| 351 | + | |
| 352 | + /** | |
| 353 | + * <p> | |
| 354 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 355 | + * </p> | |
| 356 | + * | |
| 357 | + * <p> | |
| 358 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 359 | + * </p> | |
| 360 | + * | |
| 361 | + * Método responsável por executar ações da remoção | |
| 362 | + * | |
| 363 | + * @author rogerio.costa | |
| 364 | + * | |
| 365 | + * @param credencialProcesso | |
| 366 | + */ | |
| 367 | + private void executarAcoesRemocao(CredencialProcesso credencialProcesso) { | |
| 368 | + | |
| 369 | + this.removeDelegacao(credencialProcesso); | |
| 370 | + Processo processo = this.processoService.getReference(credencialProcesso.getProcesso().getId()); | |
| 371 | + credencialProcesso.setProcessoRemocao(processo); | |
| 372 | + credencialProcesso.setProcesso(null); | |
| 373 | + this.saveHistoricoDescredenciado(credencialProcesso); | |
| 374 | + } | |
| 375 | + | |
| 376 | + /** | |
| 377 | + * <p> | |
| 378 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 379 | + * </p> | |
| 380 | + * | |
| 381 | + * <p> | |
| 382 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 383 | + * </p> | |
| 384 | + * | |
| 385 | + * Método responsável por remover a delegação do grupo/usuario no processo | |
| 386 | + * | |
| 387 | + * @author rogerio.costa | |
| 388 | + * | |
| 389 | + * @param credencialProcesso | |
| 390 | + */ | |
| 391 | + private void removeDelegacao(CredencialProcesso credencialProcesso) { | |
| 392 | + | |
| 393 | + List<String> listGrupoUsuarioRemocao = new LinkedList<String>(); | |
| 394 | + | |
| 395 | + if (UtilObjeto.isReferencia(credencialProcesso.getGrupo())) { | |
| 396 | + | |
| 397 | + listGrupoUsuarioRemocao.add(credencialProcesso.getGrupo().getSigla()); | |
| 398 | + | |
| 399 | + this.removeUserTaskDelegation(credencialProcesso.getIdTask(), listGrupoUsuarioRemocao, null); | |
| 400 | + } else { | |
| 401 | + | |
| 402 | + listGrupoUsuarioRemocao.add(credencialProcesso.getUsuario().getUsername()); | |
| 403 | + | |
| 404 | + this.removeUserTaskDelegation(credencialProcesso.getIdTask(), null, listGrupoUsuarioRemocao); | |
| 405 | + | |
| 406 | + } | |
| 407 | + } | |
| 408 | + | |
| 409 | + /** | |
| 410 | + * <p> | |
| 411 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 412 | + * </p> | |
| 413 | + * | |
| 414 | + * <p> | |
| 415 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 416 | + * </p> | |
| 417 | + * | |
| 341 | 418 | * Método responsável por salvar o histórico do descredenciamento |
| 342 | 419 | * |
| 343 | 420 | * @author rogerio.costa |
| ... | ... | @@ -346,10 +423,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 346 | 423 | */ |
| 347 | 424 | private void saveHistoricoDescredenciado(CredencialProcesso credencialProcesso) { |
| 348 | 425 | |
| 349 | - HistoricoCredencialProcesso historicoCredencialProcesso = new HistoricoCredencialProcesso(); | |
| 426 | + HistoricoCredencialProcesso historicoCredencialProcesso = this.historicoCredencialProcessoService.findByCredencialAndCredenciado(credencialProcesso); | |
| 350 | 427 | |
| 351 | 428 | historicoCredencialProcesso.setDataDescredenciado(UtilDate.getDataAtualCalendar()); |
| 352 | - historicoCredencialProcesso.setCredencialProcesso(credencialProcesso); | |
| 353 | 429 | historicoCredencialProcesso.setDescredenciador(getUsuario()); |
| 354 | 430 | |
| 355 | 431 | this.historicoCredencialProcessoService.save(historicoCredencialProcesso); |
| ... | ... | @@ -364,6 +440,30 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 364 | 440 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 365 | 441 | * </p> |
| 366 | 442 | * |
| 443 | + * Método responsável por renunciar credencial. | |
| 444 | + * | |
| 445 | + * @author rogerio.costa | |
| 446 | + * | |
| 447 | + * @param idProcesso | |
| 448 | + */ | |
| 449 | + public Boolean renunciar(Long idProcesso) { | |
| 450 | + | |
| 451 | + CredencialProcesso credencialProcesso = this.credencialProcessoDao.obterPorUsuarioEProcesso(idProcesso, this.getUsuario().getId()); | |
| 452 | + | |
| 453 | + this.executarAcoesRemocao(credencialProcesso); | |
| 454 | + | |
| 455 | + return super.removeById(credencialProcesso.getId()); | |
| 456 | + } | |
| 457 | + | |
| 458 | + /** | |
| 459 | + * <p> | |
| 460 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 461 | + * </p> | |
| 462 | + * | |
| 463 | + * <p> | |
| 464 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 465 | + * </p> | |
| 466 | + * | |
| 367 | 467 | * Método responsável por listar grupo e usuarios que tem credenciais herdadas do sistema. |
| 368 | 468 | * |
| 369 | 469 | * @author rogerio.costa |
| ... | ... | @@ -388,11 +488,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 388 | 488 | |
| 389 | 489 | for (Grupo grupo : grupos) { |
| 390 | 490 | |
| 391 | - herancaList.add(new HerancaSistemaVH(grupo.getNome(), "-")); | |
| 491 | + herancaList.add(new HerancaSistemaVH(grupo.getId(), grupo.getNome(), "-")); | |
| 392 | 492 | } |
| 393 | 493 | } |
| 394 | 494 | |
| 395 | - herancaList.add(new HerancaSistemaVH(processo.getAutor().getUsername(), UtilObjeto.isReferencia(processo.getAutor().getUnidade()) ? processo.getAutor().getUnidade().getNome() : "-")); | |
| 495 | + herancaList.add(new HerancaSistemaVH(processo.getAutor().getId(), processo.getAutor().getUsername(), UtilObjeto.isReferencia(processo.getAutor().getUnidade()) ? processo.getAutor().getUnidade().getNome() : "-")); | |
| 396 | 496 | } |
| 397 | 497 | |
| 398 | 498 | return herancaList; |
| ... | ... | @@ -433,60 +533,142 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 433 | 533 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 434 | 534 | * </p> |
| 435 | 535 | * |
| 436 | - * Método responsável por montar um objeto com a credencial do usuario com base nas funcionalidades do sistema | |
| 536 | + * Método responsável por verificar se o usuarioLogado tem permissão herdadas do sistema para o sigilo | |
| 437 | 537 | * |
| 438 | 538 | * @author rogerio.costa |
| 439 | 539 | * |
| 440 | - * @param idProcesso | |
| 540 | + * @param sigilo | |
| 541 | + */ | |
| 542 | + public Boolean contemPermissaoHerdada(Sigilo sigilo) { | |
| 543 | + | |
| 544 | + Collection<Grupo> gruposHerdados = this.findGrupoPorSigilo(sigilo); | |
| 545 | + | |
| 546 | + for (Grupo grupo : gruposHerdados) { | |
| 547 | + | |
| 548 | + if (contemUsuarioLogadoNoGrupo(grupo)) | |
| 549 | + | |
| 550 | + return Boolean.TRUE; | |
| 551 | + | |
| 552 | + } | |
| 553 | + | |
| 554 | + return Boolean.FALSE; | |
| 555 | + } | |
| 556 | + | |
| 557 | + /** | |
| 558 | + * <p> | |
| 559 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 560 | + * </p> | |
| 561 | + * | |
| 562 | + * <p> | |
| 563 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 564 | + * </p> | |
| 565 | + * | |
| 566 | + * Método responsável por verificar se o usuario logado está alocado no grupo | |
| 567 | + * | |
| 568 | + * @author rogerio.costa | |
| 441 | 569 | * |
| 442 | - * @return CredencialUsuarioVH | |
| 570 | + * @param grupo | |
| 571 | + * | |
| 572 | + * @return Boolean | |
| 443 | 573 | */ |
| 444 | - public CredencialUsuarioVH obterCredencialUsuarioLogado(Long idProcesso) { | |
| 574 | + private Boolean contemUsuarioLogadoNoGrupo(Grupo grupo) { | |
| 445 | 575 | |
| 446 | - CredencialUsuarioVH credencialUsuarioVH = new CredencialUsuarioVH(); | |
| 576 | + for (GrupoUsuario grupoUsuario : grupo.getGrupoUsuarios()) { | |
| 447 | 577 | |
| 448 | - Processo processo = this.processoService.getReference(idProcesso); | |
| 578 | + if (grupoUsuario.getUsuario().getId().equals(this.getUsuario().getId())) { | |
| 449 | 579 | |
| 450 | - Sigilo sigilo = this.sigiloService.getReference(processo.getSigilo().getId()); | |
| 580 | + return Boolean.TRUE; | |
| 451 | 581 | |
| 452 | - // valida de se o usuario logado é autor do processo | |
| 453 | - if (processo.getAutor().getId().equals(this.getUsuario().getId())) { | |
| 582 | + } | |
| 583 | + } | |
| 454 | 584 | |
| 455 | - credencialUsuarioVH.setPermiteAtribuirCredencial(Boolean.TRUE); | |
| 456 | - credencialUsuarioVH.setPermiteRemoverCredencial(Boolean.FALSE); | |
| 585 | + return Boolean.FALSE; | |
| 586 | + } | |
| 457 | 587 | |
| 458 | - } else { | |
| 588 | + /** | |
| 589 | + * <p> | |
| 590 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 591 | + * </p> | |
| 592 | + * | |
| 593 | + * <p> | |
| 594 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 595 | + * </p> | |
| 596 | + * | |
| 597 | + * Método responsável por listar grupos e usuarios do sistema | |
| 598 | + * | |
| 599 | + * @author rogerio.costa | |
| 600 | + * | |
| 601 | + * @return Collection<GrupoUsuarioVH> | |
| 602 | + */ | |
| 603 | + @Override | |
| 604 | + public Collection<GrupoUsuarioVH> findGrupoUsuarioByName(String nome) { | |
| 605 | + | |
| 606 | + return this.credencialProcessoDao.findGrupoUsuarioByName(nome); | |
| 607 | + } | |
| 608 | + | |
| 609 | + /** | |
| 610 | + * <p> | |
| 611 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 612 | + * </p> | |
| 613 | + * | |
| 614 | + * <p> | |
| 615 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 616 | + * </p> | |
| 617 | + * | |
| 618 | + * Método responsável por verificar se o usuario tem permissão para credenciar | |
| 619 | + * | |
| 620 | + * @author rogerio.costa | |
| 621 | + * | |
| 622 | + */ | |
| 623 | + @Override | |
| 624 | + public Boolean isCredenciar(Long idProcesso) { | |
| 625 | + | |
| 626 | + Processo processo = this.processoService.getReference(idProcesso); | |
| 627 | + | |
| 628 | + if (UtilObjeto.isReferencia(processo.getSigilo())) { | |
| 459 | 629 | |
| 460 | - CredencialProcesso credencialProcesso = this.credencialProcessoDao.obterPorUsuarioEProcesso(idProcesso, this.getUsuario().getId()); | |
| 630 | + Sigilo sigilo = this.sigiloService.getReference(processo.getSigilo().getId()); | |
| 461 | 631 | |
| 462 | - // Verifica se o usuario contem credencial no processo. | |
| 463 | - if (UtilObjeto.isReferencia(credencialProcesso)) { | |
| 632 | + // valida de se o usuario logado é autor do processo | |
| 633 | + if (processo.getAutor().getId().equals(this.getUsuario().getId())) { | |
| 464 | 634 | |
| 465 | - credencialUsuarioVH.setPermiteAtribuirCredencial(credencialProcesso.getPermiteCredenciar()); | |
| 466 | - credencialUsuarioVH.setId(credencialProcesso.getId()); | |
| 467 | - // Verifica se o usuario tem permissão herdada. | |
| 468 | - } else if (contemPermissaoHerdada(sigilo)) { | |
| 635 | + return Boolean.TRUE; | |
| 469 | 636 | |
| 470 | - credencialUsuarioVH.setPermiteAtribuirCredencial(Boolean.TRUE); | |
| 471 | - credencialUsuarioVH.setPermiteRemoverCredencial(Boolean.TRUE); | |
| 472 | 637 | } else { |
| 473 | - // Verifica as credenciais vinculadas no processo | |
| 474 | - for (CredencialProcesso credencialProcessoVinculada : processo.getCredenciais()) { | |
| 475 | 638 | |
| 476 | - if (UtilObjeto.isReferencia(credencialProcessoVinculada.getGrupo())) { | |
| 639 | + CredencialProcesso credencialProcesso = this.credencialProcessoDao.obterPorUsuarioEProcesso(idProcesso, this.getUsuario().getId()); | |
| 477 | 640 | |
| 478 | - Grupo grupo = this.grupoService.getReference(credencialProcessoVinculada.getGrupo().getId()); | |
| 641 | + // Verifica se o usuario contem credencial no processo. | |
| 642 | + if (UtilObjeto.isReferencia(credencialProcesso)) { | |
| 479 | 643 | |
| 480 | - if (this.contemUsuarioLogadoNoGrupo(grupo)) { | |
| 644 | + return credencialProcesso.getPermiteCredenciar(); | |
| 645 | + | |
| 646 | + // Verifica se o usuario tem permissão herdada. | |
| 647 | + } else if (contemPermissaoHerdada(sigilo)) { | |
| 648 | + | |
| 649 | + return Boolean.TRUE; | |
| 650 | + | |
| 651 | + } else { | |
| 652 | + // Verifica as credenciais vinculadas no processo | |
| 653 | + for (CredencialProcesso credencialProcessoVinculada : processo.getCredenciais()) { | |
| 481 | 654 | |
| 482 | - credencialUsuarioVH.setPermiteAtribuirCredencial(credencialProcessoVinculada.getPermiteCredenciar()); | |
| 655 | + if (UtilObjeto.isReferencia(credencialProcessoVinculada.getGrupo())) { | |
| 656 | + | |
| 657 | + Grupo grupo = this.grupoService.getReference(credencialProcessoVinculada.getGrupo().getId()); | |
| 658 | + | |
| 659 | + if (this.contemUsuarioLogadoNoGrupo(grupo)) { | |
| 660 | + | |
| 661 | + return credencialProcessoVinculada.getPermiteCredenciar(); | |
| 662 | + } | |
| 483 | 663 | } |
| 484 | 664 | } |
| 665 | + | |
| 485 | 666 | } |
| 486 | 667 | |
| 487 | 668 | } |
| 488 | 669 | } |
| 489 | - return credencialUsuarioVH; | |
| 670 | + | |
| 671 | + return Boolean.FALSE; | |
| 490 | 672 | } |
| 491 | 673 | |
| 492 | 674 | /** |
| ... | ... | @@ -498,25 +680,19 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 498 | 680 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 499 | 681 | * </p> |
| 500 | 682 | * |
| 501 | - * Método responsável por verificar se o usuarioLogado tem permissão herdadas do sistema para o sigilo | |
| 683 | + * Método responsável por listar através do id do processo | |
| 502 | 684 | * |
| 503 | 685 | * @author rogerio.costa |
| 504 | 686 | * |
| 505 | - * @param sigilo | |
| 687 | + * @param idProcesso | |
| 688 | + * @return Collection<CredencialProcesso> | |
| 506 | 689 | */ |
| 507 | - private Boolean contemPermissaoHerdada(Sigilo sigilo) { | |
| 690 | + public Collection<CredencialProcesso> findByIdProcesso(Long id) { | |
| 508 | 691 | |
| 509 | - Collection<Grupo> gruposHerdados = this.findGrupoPorSigilo(sigilo); | |
| 510 | - | |
| 511 | - for (Grupo grupo : gruposHerdados) { | |
| 512 | - | |
| 513 | - if (contemUsuarioLogadoNoGrupo(grupo)) | |
| 692 | + Collection<CredencialProcesso> credenciais = this.credencialProcessoDao.findByIdProcesso(id); | |
| 514 | 693 | |
| 515 | - return Boolean.TRUE; | |
| 516 | - | |
| 517 | - } | |
| 694 | + return this.montarPermissaoEdicao(credenciais); | |
| 518 | 695 | |
| 519 | - return Boolean.FALSE; | |
| 520 | 696 | } |
| 521 | 697 | |
| 522 | 698 | /** |
| ... | ... | @@ -528,26 +704,24 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 528 | 704 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 529 | 705 | * </p> |
| 530 | 706 | * |
| 531 | - * Método responsável por verificar se o usuario logado está alocado no grupo | |
| 707 | + * Método responsável por montar a parmissão de edição do usuarioLogado | |
| 532 | 708 | * |
| 533 | 709 | * @author rogerio.costa |
| 534 | 710 | * |
| 535 | - * @param grupo | |
| 536 | - * | |
| 537 | - * @return Boolean | |
| 711 | + * @param credenciais | |
| 712 | + * @return | |
| 538 | 713 | */ |
| 539 | - private Boolean contemUsuarioLogadoNoGrupo(Grupo grupo) { | |
| 540 | - | |
| 541 | - for (GrupoUsuario grupoUsuario : grupo.getGrupoUsuarios()) { | |
| 714 | + private Collection<CredencialProcesso> montarPermissaoEdicao(Collection<CredencialProcesso> credenciais) { | |
| 542 | 715 | |
| 543 | - if (grupoUsuario.getUsuario().getId().equals(this.getUsuario().getId())) { | |
| 716 | + if (!UtilColecao.isVazio(credenciais)) { | |
| 544 | 717 | |
| 545 | - return Boolean.TRUE; | |
| 718 | + for (CredencialProcesso credencialProcesso : credenciais) { | |
| 546 | 719 | |
| 720 | + credencialProcesso.setPermiteEdicao(credencialProcesso.getAutor().getId().equals(this.getUsuario().getId()) || this.contemPermissaoHerdada(credencialProcesso.getProcesso().getSigilo())); | |
| 547 | 721 | } |
| 548 | - } | |
| 549 | 722 | |
| 550 | - return Boolean.FALSE; | |
| 723 | + } | |
| 724 | + return credenciais; | |
| 551 | 725 | } |
| 552 | 726 | |
| 553 | 727 | /** |
| ... | ... | @@ -559,16 +733,55 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial |
| 559 | 733 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 560 | 734 | * </p> |
| 561 | 735 | * |
| 562 | - * Método responsável por listar grupos e usuarios do sistema | |
| 736 | + * Método responsável por verificar se o usuarioLogado tem permissão no processo | |
| 563 | 737 | * |
| 564 | 738 | * @author rogerio.costa |
| 565 | 739 | * |
| 566 | - * @return Collection<GrupoUsuarioVH> | |
| 740 | + * @param idProcesso | |
| 741 | + * @return boolean | |
| 567 | 742 | */ |
| 568 | 743 | @Override |
| 569 | - public Collection<GrupoUsuarioVH> findGrupoUsuarioByName(String nome) { | |
| 744 | + public boolean contemPermissaoProcesso(Long idProcesso) { | |
| 570 | 745 | |
| 571 | - return this.credencialProcessoDao.findGrupoUsuarioByName(nome); | |
| 746 | + if (UtilObjeto.isReferencia(idProcesso)) { | |
| 747 | + | |
| 748 | + Processo processo = this.processoService.getReference(idProcesso); | |
| 749 | + | |
| 750 | + if (UtilObjeto.isReferencia(processo.getSigilo())) { | |
| 751 | + | |
| 752 | + CredencialProcesso credencialProcesso = this.credencialProcessoDao.obterPorUsuarioEProcesso(idProcesso, this.getUsuario().getId()); | |
| 753 | + | |
| 754 | + if (UtilObjeto.isReferencia(credencialProcesso)) { | |
| 755 | + | |
| 756 | + return Boolean.TRUE; | |
| 757 | + } | |
| 758 | + | |
| 759 | + Sigilo sigilo = this.sigiloService.getReference(processo.getSigilo().getId()); | |
| 760 | + | |
| 761 | + if (contemPermissaoHerdada(sigilo)) { | |
| 762 | + | |
| 763 | + return Boolean.TRUE; | |
| 764 | + } | |
| 765 | + | |
| 766 | + // Verifica as credenciais vinculadas no processo | |
| 767 | + for (CredencialProcesso credencialProcessoVinculada : processo.getCredenciais()) { | |
| 768 | + | |
| 769 | + if (UtilObjeto.isReferencia(credencialProcessoVinculada.getGrupo())) { | |
| 770 | + | |
| 771 | + Grupo grupo = this.grupoService.getReference(credencialProcessoVinculada.getGrupo().getId()); | |
| 772 | + | |
| 773 | + if (this.contemUsuarioLogadoNoGrupo(grupo)) { | |
| 774 | + | |
| 775 | + return Boolean.TRUE; | |
| 776 | + } | |
| 777 | + } | |
| 778 | + } | |
| 779 | + | |
| 780 | + } | |
| 781 | + | |
| 782 | + } | |
| 783 | + | |
| 784 | + return Boolean.FALSE; | |
| 572 | 785 | } |
| 573 | 786 | |
| 574 | 787 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
| ... | ... | @@ -775,9 +775,8 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo |
| 775 | 775 | |
| 776 | 776 | if (!UtilColecao.isVazio(listaDocumentos)) { |
| 777 | 777 | for (DocumentoGed documento : listaDocumentos) { |
| 778 | - DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId()); | |
| 779 | - if (documento.getNivelAcesso() == null) { | |
| 780 | - entity.setAprovado(Boolean.TRUE); | |
| 778 | + if (documento.getSigilo() == null) { | |
| 779 | + documento.setAprovado(Boolean.TRUE); | |
| 781 | 780 | } |
| 782 | 781 | |
| 783 | 782 | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoCredencialProcessoServiceImpl.java
| ... | ... | @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
| 6 | 6 | import org.springframework.stereotype.Service; |
| 7 | 7 | |
| 8 | 8 | import br.com.centralit.api.dao.HistoricoCredencialProcessoDao; |
| 9 | +import br.com.centralit.api.model.CredencialProcesso; | |
| 9 | 10 | import br.com.centralit.api.model.HistoricoCredencialProcesso; |
| 10 | 11 | import br.com.centralit.api.service.HistoricoCredencialProcessoService; |
| 11 | 12 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
| ... | ... | @@ -76,9 +77,31 @@ public class HistoricoCredencialProcessoServiceImpl extends GenericServiceImpl<H |
| 76 | 77 | * |
| 77 | 78 | * @return Collection<HistoricoCredencialProcesso> |
| 78 | 79 | */ |
| 79 | - public Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso){ | |
| 80 | - | |
| 80 | + public Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso) { | |
| 81 | + | |
| 81 | 82 | return this.historicoCredencialProcessoDao.findByIdProcessoAndIdProcessoRemocao(idProcesso); |
| 82 | 83 | } |
| 83 | 84 | |
| 85 | + /** | |
| 86 | + * <p> | |
| 87 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 88 | + * </p> | |
| 89 | + * | |
| 90 | + * <p> | |
| 91 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 92 | + * </p> | |
| 93 | + * | |
| 94 | + * Método responsável por listar através da credencial e credenciado | |
| 95 | + * | |
| 96 | + * @author rogerio.costa | |
| 97 | + * | |
| 98 | + * @param credencialProcesso | |
| 99 | + * | |
| 100 | + * @return HistoricoCredencialProcesso | |
| 101 | + */ | |
| 102 | + public HistoricoCredencialProcesso findByCredencialAndCredenciado(CredencialProcesso credencialProcesso) { | |
| 103 | + | |
| 104 | + return this.historicoCredencialProcessoDao.findByCredencialAndCredenciado(credencialProcesso); | |
| 105 | + } | |
| 106 | + | |
| 84 | 107 | } | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
| ... | ... | @@ -6,9 +6,12 @@ import java.util.Calendar; |
| 6 | 6 | import java.util.Collection; |
| 7 | 7 | import java.util.GregorianCalendar; |
| 8 | 8 | import java.util.HashMap; |
| 9 | +import java.util.LinkedList; | |
| 9 | 10 | import java.util.List; |
| 10 | 11 | import java.util.Map; |
| 11 | 12 | |
| 13 | +import javax.servlet.http.HttpServletRequest; | |
| 14 | + | |
| 12 | 15 | import org.apache.commons.lang.StringUtils; |
| 13 | 16 | import org.json.JSONObject; |
| 14 | 17 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -22,6 +25,8 @@ import br.com.centralit.api.model.EstruturaOrganizacionalECM; |
| 22 | 25 | import br.com.centralit.api.model.InteressadoProcesso; |
| 23 | 26 | import br.com.centralit.api.model.PlanoClassificacao; |
| 24 | 27 | import br.com.centralit.api.model.Processo; |
| 28 | +import br.com.centralit.api.model.Sigilo; | |
| 29 | +import br.com.centralit.api.model.SigiloPrivilegio; | |
| 25 | 30 | import br.com.centralit.api.model.Temporalidade; |
| 26 | 31 | import br.com.centralit.api.model.UnidadeProcesso; |
| 27 | 32 | import br.com.centralit.api.service.CredencialProcessoService; |
| ... | ... | @@ -40,6 +45,7 @@ import br.com.centralit.framework.esi.environment.EnvironmentOutput; |
| 40 | 45 | import br.com.centralit.framework.esi.environment.EnvironmentVariable; |
| 41 | 46 | import br.com.centralit.framework.exception.BusinessException; |
| 42 | 47 | import br.com.centralit.framework.exception.CodigoErro; |
| 48 | +import br.com.centralit.framework.model.Grupo; | |
| 43 | 49 | import br.com.centralit.framework.model.Unidade; |
| 44 | 50 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
| 45 | 51 | import br.com.centralit.framework.util.UtilColecao; |
| ... | ... | @@ -123,6 +129,10 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl |
| 123 | 129 | @Autowired |
| 124 | 130 | private CredencialProcessoService credencialProcessoService; |
| 125 | 131 | |
| 132 | + /** Atributo request. */ | |
| 133 | + @Autowired | |
| 134 | + private HttpServletRequest request; | |
| 135 | + | |
| 126 | 136 | @Autowired |
| 127 | 137 | public ProcessoServiceImpl( final ProcessoDao processoDao, @Qualifier("processoValidator") final Validator validator ) { |
| 128 | 138 | |
| ... | ... | @@ -142,7 +152,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl |
| 142 | 152 | |
| 143 | 153 | final Processo processo = super.save(entity); |
| 144 | 154 | |
| 145 | - /* this.gerarCredenciais(processo); */ | |
| 155 | +// this.credencialProcessoService.saveCredenciais(processo); | |
| 146 | 156 | |
| 147 | 157 | if (processo.getTipoProtocolo().getCodigo().equals(1L)) { |
| 148 | 158 | this.gerarNUP(processo); |
| ... | ... | @@ -274,11 +284,23 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl |
| 274 | 284 | final JSONObject processoJSON = new JSONObject(mapProcesso); |
| 275 | 285 | |
| 276 | 286 | variaveis.add(new EnvironmentVariable("idProcesso", VariableTypeEnum.LONG, processo.getId(), false)); |
| 277 | - variaveis.add(new EnvironmentVariable("solicitante", VariableTypeEnum.TEXT, processo.getAutor().getUsername(), false)); | |
| 278 | 287 | variaveis.add(new EnvironmentVariable("nup", VariableTypeEnum.JSON, processo.getNup(), false)); |
| 288 | + variaveis.add(new EnvironmentVariable("solicitante", VariableTypeEnum.TEXT, processo.getAutor().getUsername(), false)); | |
| 289 | + | |
| 290 | + // Verifica se o processo é sigiloso. | |
| 291 | + if (UtilObjeto.isReferencia(processo.getSigilo())) { | |
| 279 | 292 | |
| 280 | - // Verifica se foi configurado um grupo padrão para unidade o usuario. | |
| 281 | - if (UtilObjeto.isReferencia(unidade.getGrupo())) { | |
| 293 | + variaveis.add(new EnvironmentVariable("usuario_criador_processo_sigiloso", VariableTypeEnum.JSON, processo.getAutor().getUsername(), false)); | |
| 294 | + | |
| 295 | + List<Grupo> gruposPadraoSigilo = (List<Grupo>) this.findGrupoPorSigilo(processo.getSigilo()); | |
| 296 | + | |
| 297 | + if (!UtilColecao.isVazio(gruposPadraoSigilo)) { | |
| 298 | + //No momento o sistema está aceitando somente um grupo para gerenciar cada nivel de sigilo. | |
| 299 | + variaveis.add(new EnvironmentVariable("grupoPadrao", VariableTypeEnum.TEXT, gruposPadraoSigilo.get(0).getSigla(), false)); | |
| 300 | + } | |
| 301 | + | |
| 302 | + // Verifica se foi configurado um grupo padrão para unidade o usuario. | |
| 303 | + } else if (UtilObjeto.isReferencia(unidade.getGrupo())) { | |
| 282 | 304 | |
| 283 | 305 | variaveis.add(new EnvironmentVariable("grupoPadrao", VariableTypeEnum.TEXT, unidade.getGrupo().getSigla(), false)); |
| 284 | 306 | } else { |
| ... | ... | @@ -306,6 +328,59 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl |
| 306 | 328 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
| 307 | 329 | * </p> |
| 308 | 330 | * |
| 331 | + * Método responsável por retornar os privilegios através do sigilo | |
| 332 | + * | |
| 333 | + * @author rogerio.costa | |
| 334 | + * | |
| 335 | + * @param sigilo | |
| 336 | + * @return Collection<Privilegio> | |
| 337 | + */ | |
| 338 | + private Collection<Long> getPrivilegios(Sigilo sigilo) { | |
| 339 | + | |
| 340 | + Collection<Long> listIdsPrivilegio = new LinkedList<Long>(); | |
| 341 | + // Cria uma lista de privilegios relacionados ao sigilo do processo | |
| 342 | + for (SigiloPrivilegio sigiloPrivilegio : sigilo.getSigiloPrivilegios()) { | |
| 343 | + | |
| 344 | + listIdsPrivilegio.add(sigiloPrivilegio.getPrivilegio().getId()); | |
| 345 | + } | |
| 346 | + return listIdsPrivilegio; | |
| 347 | + } | |
| 348 | + | |
| 349 | + /** | |
| 350 | + * <p> | |
| 351 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 352 | + * </p> | |
| 353 | + * | |
| 354 | + * <p> | |
| 355 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 356 | + * </p> | |
| 357 | + * | |
| 358 | + * Método responsável por obter grupos através do sigilo | |
| 359 | + * | |
| 360 | + * @author rogerio.costa | |
| 361 | + * | |
| 362 | + * @param sigilo | |
| 363 | + * | |
| 364 | + * @return Collection<Grupo> | |
| 365 | + */ | |
| 366 | + private Collection<Grupo> findGrupoPorSigilo(Sigilo sigilo) { | |
| 367 | + | |
| 368 | + Collection<Long> idPrivilegios = this.getPrivilegios(sigilo); | |
| 369 | + | |
| 370 | + Collection<Grupo> grupos = this.grupoService.findByPrivilegio(idPrivilegios); | |
| 371 | + | |
| 372 | + return grupos; | |
| 373 | + } | |
| 374 | + | |
| 375 | + /** | |
| 376 | + * <p> | |
| 377 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 378 | + * </p> | |
| 379 | + * | |
| 380 | + * <p> | |
| 381 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 382 | + * </p> | |
| 383 | + * | |
| 309 | 384 | * Método responsável por resolver as pripriedades transiente |
| 310 | 385 | * |
| 311 | 386 | * @author rogerio.costa |
| ... | ... | @@ -498,6 +573,8 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl |
| 498 | 573 | |
| 499 | 574 | final Processo processo = super.getReference(id); |
| 500 | 575 | |
| 576 | + request.getSession().setAttribute("idProcesso", id); | |
| 577 | + | |
| 501 | 578 | processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id)); |
| 502 | 579 | |
| 503 | 580 | return processo; | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/viewHelper/HerancaSistemaVH.java
| ... | ... | @@ -38,6 +38,10 @@ import br.com.centralit.framework.json.Views; |
| 38 | 38 | */ |
| 39 | 39 | public class HerancaSistemaVH { |
| 40 | 40 | |
| 41 | + /** Atributo id. */ | |
| 42 | + @JsonView({ Views.GenericView.class }) | |
| 43 | + private Long id; | |
| 44 | + | |
| 41 | 45 | /** Atributo nome. */ |
| 42 | 46 | @JsonView({ Views.GenericView.class }) |
| 43 | 47 | private String nome; |
| ... | ... | @@ -51,9 +55,11 @@ public class HerancaSistemaVH { |
| 51 | 55 | * |
| 52 | 56 | * @param nome |
| 53 | 57 | * @param nomeUnidade |
| 58 | + * @param id | |
| 54 | 59 | */ |
| 55 | - public HerancaSistemaVH( String nome, String nomeUnidade ) { | |
| 60 | + public HerancaSistemaVH( Long id, String nome, String nomeUnidade ) { | |
| 56 | 61 | |
| 62 | + this.id = id; | |
| 57 | 63 | this.nome = nome; |
| 58 | 64 | this.nomeUnidade = nomeUnidade; |
| 59 | 65 | } | ... | ... |
cit-ecm-web/src/main/java/br/com/centralit/controller/CredencialProcessoController.java
| ... | ... | @@ -4,12 +4,14 @@ import java.util.Collection; |
| 4 | 4 | |
| 5 | 5 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | 6 | import org.springframework.stereotype.Controller; |
| 7 | +import org.springframework.web.bind.annotation.PathVariable; | |
| 7 | 8 | import org.springframework.web.bind.annotation.RequestBody; |
| 8 | 9 | import org.springframework.web.bind.annotation.RequestMapping; |
| 9 | 10 | import org.springframework.web.bind.annotation.RequestMethod; |
| 10 | 11 | import org.springframework.web.bind.annotation.RequestParam; |
| 11 | 12 | import org.springframework.web.bind.annotation.ResponseBody; |
| 12 | 13 | |
| 14 | +import br.com.centralit.api.framework.json.ViewsEcm; | |
| 13 | 15 | import br.com.centralit.api.model.CredencialProcesso; |
| 14 | 16 | import br.com.centralit.api.service.CredencialProcessoService; |
| 15 | 17 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; |
| ... | ... | @@ -122,18 +124,31 @@ public class CredencialProcessoController extends GenericController<CredencialPr |
| 122 | 124 | } |
| 123 | 125 | |
| 124 | 126 | /** |
| 125 | - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> | |
| 126 | - * | |
| 127 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
| 128 | - * | |
| 127 | + * <p> | |
| 128 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
| 129 | + * </p> | |
| 130 | + * | |
| 131 | + * <p> | |
| 132 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
| 133 | + * </p> | |
| 134 | + * | |
| 129 | 135 | * Método responsável por listar as credenciais herdadas |
| 130 | - * | |
| 136 | + * | |
| 131 | 137 | * @author rogerio.costa |
| 132 | - * | |
| 138 | + * | |
| 133 | 139 | * @param idProcesso |
| 134 | 140 | * @return |
| 135 | 141 | * @throws Exception |
| 136 | 142 | */ |
| 143 | + @RequestMapping(value = "/findByIdProcesso", method = RequestMethod.GET, produces = "application/json") | |
| 144 | + @ResponseBody | |
| 145 | + public ResponseBodyWrapper findByIdProcesso(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception { | |
| 146 | + | |
| 147 | + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.findByIdProcesso(idProcesso), Views.CredencialProcessoView.class); | |
| 148 | + | |
| 149 | + return responseBody; | |
| 150 | + } | |
| 151 | + | |
| 137 | 152 | @RequestMapping(value = "/findCredenciaisHerdadas", method = RequestMethod.GET, produces = "application/json") |
| 138 | 153 | @ResponseBody |
| 139 | 154 | public ResponseBodyWrapper findCredenciaisHerdadas(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception { |
| ... | ... | @@ -143,24 +158,11 @@ public class CredencialProcessoController extends GenericController<CredencialPr |
| 143 | 158 | return responseBody; |
| 144 | 159 | } |
| 145 | 160 | |
| 146 | - /** | |
| 147 | - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> | |
| 148 | - * | |
| 149 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
| 150 | - * | |
| 151 | - * Método responsável por obter as credenciais do usuario logado | |
| 152 | - * | |
| 153 | - * @author rogerio.costa | |
| 154 | - * | |
| 155 | - * @param idProcesso | |
| 156 | - * @return | |
| 157 | - * @throws Exception | |
| 158 | - */ | |
| 159 | - @RequestMapping(value = "/obterCredencialUsuarioLogado", method = RequestMethod.GET, produces = "application/json") | |
| 161 | + @RequestMapping(method = RequestMethod.DELETE, value = "/renunciar/{idProcesso}") | |
| 160 | 162 | @ResponseBody |
| 161 | - public ResponseBodyWrapper obterCredencialUsuarioLogado(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception { | |
| 163 | + public ResponseBodyWrapper renunciar(@PathVariable("idProcesso") Long idProcesso) { | |
| 162 | 164 | |
| 163 | - ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.obterCredencialUsuarioLogado(idProcesso), Views.GenericView.class); | |
| 165 | + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.renunciar(idProcesso), getEditView()); | |
| 164 | 166 | |
| 165 | 167 | return responseBody; |
| 166 | 168 | } | ... | ... |
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
| ... | ... | @@ -194,8 +194,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen |
| 194 | 194 | list.add(new Dominio("tipoFormaCriacao", "Anexo", "ANEXO", 2L)); |
| 195 | 195 | list.add(new Dominio("tipoFormaCriacao", "Ambos", "AMBOS", 3L)); |
| 196 | 196 | |
| 197 | - list.add(new Dominio("tipoProtocoloNup", "Automático", "NUP_NOVO", 1L, Boolean.FALSE)); | |
| 198 | - list.add(new Dominio("tipoProtocoloNup", "Informado", "EXTERNO", 2L, Boolean.FALSE)); | |
| 197 | + list.add(new Dominio("tipoProtocoloNup", "Automático", "EXTERNO", 1L, Boolean.FALSE)); | |
| 198 | + list.add(new Dominio("tipoProtocoloNup", "Informado", "NUP_NOVO", 2L, Boolean.FALSE)); | |
| 199 | 199 | |
| 200 | 200 | this.dominioService.saveListIfNotExist(list); |
| 201 | 201 | |
| ... | ... | @@ -408,6 +408,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen |
| 408 | 408 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.ERRO_UNIDADE_ECM_VIGENTE_USUARIO", "O usuário vigente não possui unidade organizacional ECM vinculada!", dominio, modulo)); |
| 409 | 409 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.ERRO_CONFIGURACAO_GRUPO_PADRAO_USUARIO", "O grupo padrão não foi configurado para unidade vigente", dominio, modulo)); |
| 410 | 410 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.REMOCAO_COM_VINCULO", "Não é possível excluir pois o mesmo encontra-se em uso por outro cadastro no sistema!", dominio, modulo)); |
| 411 | + internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.PERMISSAO_OPERACAO", "Você não tem permissão para executar a operação.", dominio, modulo)); | |
| 411 | 412 | |
| 412 | 413 | } |
| 413 | 414 | ... | ... |
cit-ecm-web/src/main/resources/spring/applicationContext.xml
| ... | ... | @@ -36,7 +36,9 @@ |
| 36 | 36 | p:jpaPropertyMap-ref="jpaPropertyMap" p:jpaVendorAdapter-ref="jpaVendorAdapter" /> |
| 37 | 37 | |
| 38 | 38 | <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> |
| 39 | - | |
| 39 | + | |
| 40 | + <bean id="webExpressionHandler" class="br.com.centralit.api.security.CustomExpressionHandler"/> | |
| 41 | + | |
| 40 | 42 | <util:map id="jpaPropertyMap"> |
| 41 | 43 | <entry key="generateDdl" value="${hibernate.generate.ddl}" /> |
| 42 | 44 | <entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}" /> | ... | ... |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/CredencialProcessoController.js
| ... | ... | @@ -8,19 +8,19 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso |
| 8 | 8 | |
| 9 | 9 | |
| 10 | 10 | //Iniciar credencial de acesso |
| 11 | - $scope.iniciarCredencial = function(idProcesso, credencialUsuarioProcesso){ | |
| 11 | + $scope.iniciarCredencial = function(processo){ | |
| 12 | 12 | this.credenciarProcessoForm = $scope.credencialProcessoController.credenciarProcessoForm; |
| 13 | 13 | $scope.credenciais = []; |
| 14 | - $scope.idProcesso = idProcesso; | |
| 14 | + $scope.processo = processo; | |
| 15 | 15 | $scope.herdadas = []; |
| 16 | - $scope.credencialUsuarioProcesso = credencialUsuarioProcesso; | |
| 17 | - CredencialProcessoRepository.findByIdJoin('processo.id', $scope.idProcesso).then(function(result) { | |
| 16 | + $scope.credencialProcesso.grupoUsuario = null; | |
| 17 | + CredencialProcessoRepository.findByIdProcesso($scope.processo.id).then(function(result) { | |
| 18 | 18 | result.forEach(function (credencialProcesso) { |
| 19 | 19 | |
| 20 | 20 | $scope.credenciais.push(credencialProcesso.originalElement); |
| 21 | 21 | }); |
| 22 | 22 | |
| 23 | - CredencialProcessoRepository.findCredenciaisHerdadas($scope.idProcesso).then(function(result) { | |
| 23 | + CredencialProcessoRepository.findCredenciaisHerdadas($scope.processo.id).then(function(result) { | |
| 24 | 24 | $scope.herdadas = result; |
| 25 | 25 | }); |
| 26 | 26 | |
| ... | ... | @@ -39,7 +39,7 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso |
| 39 | 39 | |
| 40 | 40 | $scope.historicos = []; |
| 41 | 41 | |
| 42 | - HistoricoCredencialProcessoRepository.findByIdProcessoAndIdProcessoRemocao($scope.idProcesso).then(function(result) { | |
| 42 | + HistoricoCredencialProcessoRepository.findByIdProcessoAndIdProcessoRemocao($scope.processo.id).then(function(result) { | |
| 43 | 43 | result.forEach(function (historico) { |
| 44 | 44 | |
| 45 | 45 | $scope.historicos.push(historico.originalElement); |
| ... | ... | @@ -81,7 +81,9 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso |
| 81 | 81 | |
| 82 | 82 | var listSemGrupoAdicionado = $filter('idNotEqualObj')(result, $scope.credenciais, 'grupo'); |
| 83 | 83 | |
| 84 | - return $filter('idNotEqualObj')(listSemGrupoAdicionado, $scope.credenciais, 'usuario'); | |
| 84 | + var credenciadosFiltrados = $filter('idNotEqualObj')(listSemGrupoAdicionado, $scope.credenciais, 'usuario'); | |
| 85 | + | |
| 86 | + return $filter('idNotEqual')(credenciadosFiltrados, $scope.herdadas); | |
| 85 | 87 | }); |
| 86 | 88 | }; |
| 87 | 89 | |
| ... | ... | @@ -99,9 +101,8 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso |
| 99 | 101 | var credencialProcesso = {}; |
| 100 | 102 | credencialProcesso.id = $scope.credencialProcesso.id; |
| 101 | 103 | credencialProcesso.permiteCredenciar = $scope.credencialProcesso.permiteCredenciar; |
| 102 | - credencialProcesso.processo = { | |
| 103 | - id : $scope.idProcesso | |
| 104 | - }; | |
| 104 | + credencialProcesso.processo = $scope.processo; | |
| 105 | + credencialProcesso.idTask = $scope.processo.idTask; | |
| 105 | 106 | |
| 106 | 107 | //Verifica se o grupUsuario é um grupo, codigo 1 é grupo e 2 usuário |
| 107 | 108 | if($scope.credencialProcesso.grupoUsuario.codigo == 1){ |
| ... | ... | @@ -144,66 +145,59 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso |
| 144 | 145 | }; |
| 145 | 146 | |
| 146 | 147 | //Editar credencial |
| 147 | - $scope.editCredencial = function(){ | |
| 148 | + $scope.editCredencial = function(credencialProcesso){ | |
| 148 | 149 | //prepara objeto edição |
| 149 | 150 | $scope.credencialProcesso = { |
| 150 | 151 | edit : true, |
| 151 | - $$hashKey : $scope.credencialProcessoChecked.$$hashKey, | |
| 152 | - permiteCredenciar : $scope.credencialProcessoChecked.permiteCredenciar, | |
| 152 | + $$hashKey : credencialProcesso.$$hashKey, | |
| 153 | + permiteCredenciar : credencialProcesso.permiteCredenciar, | |
| 153 | 154 | grupoUsuario : { |
| 154 | - nome : $scope.credencialProcessoChecked.grupo ? $scope.credencialProcessoChecked.grupo.nome : $scope.credencialProcessoChecked.usuario.username, | |
| 155 | - id : $scope.credencialProcessoChecked.grupo ? $scope.credencialProcessoChecked.grupo.id : $scope.credencialProcessoChecked.usuario.id | |
| 155 | + nome : credencialProcesso.grupo ? credencialProcesso.grupo.nome : credencialProcesso.usuario.username, | |
| 156 | + id : credencialProcesso.grupo ? credencialProcesso.grupo.id : credencialProcesso.usuario.id | |
| 156 | 157 | } |
| 157 | 158 | }; |
| 158 | 159 | |
| 159 | - $scope.credencialProcessoChecked = null; | |
| 160 | - | |
| 161 | 160 | }; |
| 162 | 161 | |
| 163 | 162 | //Exibir o dialog de confirmação de exclusão |
| 164 | - $scope.exibirDialogRemocao = function(){ | |
| 165 | - //Verifica se alguma credencial foi selecioanda | |
| 166 | - if(!$scope.credencialProcessoChecked){ | |
| 167 | - | |
| 168 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | |
| 169 | - | |
| 170 | - }else{ | |
| 163 | + $scope.exibirDialogRemocao = function(credencialProcesso){ | |
| 171 | 164 | |
| 172 | - $scope.$openModalConfirm({message: $translate.instant('LABEL.CONFIRMA_EXCLUSAO'), callback: $scope.remove}); | |
| 173 | - } | |
| 174 | - | |
| 165 | + $scope.$openModalConfirm({message: $translate.instant('LABEL.CONFIRMA_EXCLUSAO'), callback: $scope.remove, item : credencialProcesso}); | |
| 175 | 166 | }; |
| 176 | 167 | |
| 177 | 168 | //Remover credencial |
| 178 | 169 | $scope.remove = function(){ |
| 179 | 170 | |
| 180 | 171 | //Obter o index do elemento |
| 181 | - var index = $scope.credenciais.indexOf($scope.credencialProcessoChecked); | |
| 182 | - | |
| 183 | - $scope.showAlert("success", $translate.instant('MSG.EXCLUSAO_SUCESSO')); | |
| 184 | - | |
| 172 | + var index = $scope.credenciais.indexOf(this.item); | |
| 173 | + | |
| 185 | 174 | //Verifica se a credencial selecionada já foi persistida |
| 186 | - if($scope.credencialProcessoChecked.id){ | |
| 175 | + if(this.item.id){ | |
| 187 | 176 | |
| 188 | - CredencialProcessoRepository.remove($scope.credencialProcessoChecked).then(function() { | |
| 189 | - | |
| 177 | + CredencialProcessoRepository.remove(this.item).then(function() { | |
| 178 | + $scope.showAlert("success", $translate.instant('MSG.EXCLUSAO_SUCESSO')); | |
| 179 | + //Remove a credencial da lista de credenciais | |
| 180 | + $scope.credenciais.splice(index , 1); | |
| 181 | + $scope.credencialProcessoChecked = null; | |
| 190 | 182 | $scope.findHistorico(); |
| 191 | 183 | |
| 192 | 184 | }); |
| 193 | 185 | |
| 186 | + }else{ | |
| 187 | + $scope.showAlert("success", $translate.instant('MSG.EXCLUSAO_SUCESSO')); | |
| 188 | + //Remove a credencial da lista de credenciais | |
| 189 | + $scope.credenciais.splice(index , 1); | |
| 190 | + | |
| 191 | + $scope.credencialProcessoChecked = null; | |
| 192 | + | |
| 194 | 193 | } |
| 195 | - //Remove a credencial da lista de credenciais | |
| 196 | - $scope.credenciais.splice(index , 1); | |
| 197 | - | |
| 198 | - $scope.credencialProcessoChecked = null; | |
| 199 | - | |
| 200 | 194 | $scope.$modalConfirmInstance.dismiss('cancel'); |
| 201 | 195 | }; |
| 202 | 196 | |
| 203 | 197 | //Verifica se o usuario logado tem permissão de remover a credencial |
| 204 | 198 | $scope.verificarPermissaoRemover = function(){ |
| 205 | 199 | |
| 206 | - $scope.permiteRemoverCredencial = $scope.usuarioLogado.id === $scope.credencialProcessoChecked.autor.id || $scope.credencialUsuarioProcesso.permiteRemoverCredencial; | |
| 200 | + $scope.permiteRemoverCredencial = $scope.usuarioLogado.id === $scope.credencialProcessoChecked.autor.id; | |
| 207 | 201 | }; |
| 208 | 202 | |
| 209 | 203 | ... | ... |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
| 1 | 1 | 'use strict'; |
| 2 | 2 | |
| 3 | -citApp.controller( 'GerenciarProcessoController', [ | |
| 4 | - '$scope', | |
| 5 | - '$translate', | |
| 6 | - '$timeout', | |
| 7 | - 'GerenciarProcessoRepository', | |
| 8 | - 'ProcessoRepository', | |
| 9 | - 'RuntimeManagerRepository', | |
| 10 | - '$rootScope', | |
| 11 | - 'DocumentoGedRepository', | |
| 12 | - 'HistoricoAlteracaoProcessoRepository', | |
| 13 | - 'UnidadeRepository', | |
| 14 | - 'UnidadeProcessoRepository', | |
| 15 | - 'CredencialProcessoRepository', | |
| 16 | - function GerenciarProcessoController ( $scope, $translate, $timeout, GerenciarProcessoRepository, ProcessoRepository, RuntimeManagerRepository, $rootScope, DocumentoGedRepository, | |
| 17 | - HistoricoAlteracaoProcessoRepository, UnidadeRepository, UnidadeProcessoRepository, CredencialProcessoRepository ) { | |
| 18 | - | |
| 19 | - $scope.processo = {}; | |
| 20 | - $scope.iconAnexo = {}; | |
| 21 | - $scope.taskVariables = []; | |
| 22 | - $scope.unidades = []; | |
| 23 | - | |
| 24 | - // INICIALIZA VARIAVEIS PARA HABILITAR E FECHAR DIVS DE AÇÕES DO PROCESSO | |
| 25 | - | |
| 26 | - $scope.isHistoricoProcesso = true; | |
| 27 | - $scope.fecharPagina = function () { | |
| 28 | - $scope.isProcessoRelacionado = false; | |
| 29 | - $scope.isDocumentoEdit = false; | |
| 30 | - $scope.isProcessoEdit = false; | |
| 31 | - $scope.isHistoricoProcesso = false; | |
| 32 | - $scope.isVersoesDocumento = false; | |
| 33 | - $scope.isEnviarProcesso = false; | |
| 34 | - $scope.isCancelarDocumento = false; | |
| 35 | - $scope.isJustificativaAcaoProcesso = false; | |
| 36 | - $scope.isHistoricoJustificativa = false; | |
| 37 | - $scope.isAnexarProcesso = false; | |
| 38 | - $scope.widgetExemploIsCollapsed = true; | |
| 39 | - $scope.tratimitado(); | |
| 40 | - $scope.isGerenciarCredencialProcesso = false; | |
| 41 | - $scope.isClassificarProcessoDocumento = false; | |
| 42 | - | |
| 43 | - }; | |
| 44 | 3 | |
| 45 | - // CRIAR RELACIONAMENTO DE PROCESSO | |
| 4 | +citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$timeout','GerenciarProcessoRepository', 'ProcessoRepository', 'RuntimeManagerRepository','$rootScope', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository','UnidadeRepository','UnidadeProcessoRepository','CredencialProcessoRepository', | |
| 5 | + function GerenciarProcessoController($scope, $translate, $timeout, GerenciarProcessoRepository, ProcessoRepository, RuntimeManagerRepository,$rootScope, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository,UnidadeRepository, UnidadeProcessoRepository,CredencialProcessoRepository ) { | |
| 6 | + | |
| 7 | + $scope.processo = {}; | |
| 8 | + $scope.iconAnexo = {}; | |
| 9 | + $scope.taskVariables = []; | |
| 10 | + $scope.unidades = []; | |
| 11 | + | |
| 12 | + $scope.url = '/cit-ecm-web/html/gerenciarProcesso/includeCabecalhoGerenciarProcesso.jsp?i=' + (new Date).getTime(); | |
| 13 | + | |
| 14 | + //INICIALIZA VARIAVEIS PARA HABILITAR E FECHAR DIVS DE AÇÕES DO PROCESSO | |
| 15 | + | |
| 16 | + $scope.isHistoricoProcesso = true; | |
| 17 | + $scope.fecharPagina = function() { | |
| 18 | + $scope.isProcessoRelacionado = false; | |
| 19 | + $scope.isDocumentoEdit = false; | |
| 20 | + $scope.isProcessoEdit = false; | |
| 21 | + $scope.isHistoricoProcesso = false; | |
| 22 | + $scope.isVersoesDocumento = false; | |
| 23 | + $scope.isEnviarProcesso = false; | |
| 24 | + $scope.isCancelarDocumento = false; | |
| 25 | + $scope.isJustificativaAcaoProcesso = false; | |
| 26 | + $scope.isHistoricoJustificativa = false; | |
| 27 | + $scope.isAnexarProcesso = false; | |
| 28 | + $scope.widgetExemploIsCollapsed = true; | |
| 29 | + $scope.tratimitado(); | |
| 30 | + $scope.isGerenciarCredencialProcesso = false; | |
| 31 | + $scope.isClassificarProcessoDocumento = false; | |
| 32 | + | |
| 33 | + // CRIAR RELACIONAMENTO DE PROCESSO | |
| 46 | 34 | $scope.editProcessoRelacionado = function () { |
| 47 | 35 | |
| 48 | 36 | $scope.fecharPagina(); |
| ... | ... | @@ -594,7 +582,9 @@ citApp.controller( 'GerenciarProcessoController', [ |
| 594 | 582 | $timeout( function () { |
| 595 | 583 | // console.log('idProcesso:' + $scope.idProcesso); |
| 596 | 584 | ProcessoRepository.get( $scope.idProcesso ).then( function ( result ) { |
| 597 | - $scope.processo = result.originalElement; | |
| 585 | + $scope.processo = result.originalElement; | |
| 586 | + $scope.apresentarCabecalho = true; | |
| 587 | + $scope.processo.idTask = $scope.task.id; | |
| 598 | 588 | |
| 599 | 589 | CredencialProcessoRepository.obterCredencialUsuarioLogado( $scope.idProcesso ).then( function ( result ) { |
| 600 | 590 | $scope.credencialUsuarioProcesso = result.originalElement; | ... | ... |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/CredencialProcessoRepository.js
| ... | ... | @@ -17,10 +17,14 @@ citApp.factory('CredencialProcessoRepository', ['RestangularEcm', 'AbstractRepos |
| 17 | 17 | return restangularEcm.one(this.route).getList("findCredenciaisHerdadas", {idProcesso : idProcesso}).then(); |
| 18 | 18 | }; |
| 19 | 19 | |
| 20 | - this.obterCredencialUsuarioLogado = function(idProcesso) { | |
| 21 | - return restangularEcm.one(this.route + "/obterCredencialUsuarioLogado").get({idProcesso : idProcesso}); | |
| 20 | + this.findByIdProcesso = function(idProcesso) { | |
| 21 | + return restangularEcm.one(this.route).getList("findByIdProcesso", {idProcesso : idProcesso}).then(); | |
| 22 | 22 | }; |
| 23 | 23 | |
| 24 | + this.renunciar = function (idProcesso) { | |
| 25 | + return restangularEcm.one(this.route + "/renunciar", idProcesso).remove(); | |
| 26 | + }; | |
| 27 | + | |
| 24 | 28 | } |
| 25 | 29 | |
| 26 | 30 | AbstractRepository.extend(CredencialProcessoRepository); | ... | ... |
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeCabecalhoGerenciarProcesso.html
| ... | ... | @@ -1,74 +0,0 @@ |
| 1 | - | |
| 2 | -<button ng-show="task.flowElement.actions && task.flowElement.actions.length == 1" title="{{$translate.instant('ESI.EXECUCAO_TAREFA.GRAVAR_TAREFA_AVANCAR')}}" | |
| 3 | - alt="{{$translate.instant('ESI.EXECUCAO_TAREFA.GRAVAR_TAREFA_AVANCAR')}}" class="btn btn-clear" ng-click="executarProcesso(task.flowElement.actions[0])"> | |
| 4 | - <i class="fa fa-play-circle green"></i> | |
| 5 | - <translate>ECM.LABEL.AVANCAR_FLUXO</translate> | |
| 6 | -</button> | |
| 7 | - | |
| 8 | -<div class="btn-group dropdown" role="group" dropdown ng-show=" task.flowElement.actions && task.flowElement.actions.length > 1"> | |
| 9 | - <button type="button" class="btn btn-clear" dropdown-toggle> | |
| 10 | - <i class="fa fa-play-circle green"></i> | |
| 11 | - <translate>ECM.LABEL.AVANCAR_FLUXO</translate> | |
| 12 | - <span class="fa fa-caret-down icon-on-right"></span> | |
| 13 | - </button> | |
| 14 | - | |
| 15 | - <ul class="dropdown-menu-center dropdown-menu dropdown-caret" role="menu" ng-repeat="action in task.flowElement.actions"> | |
| 16 | - <li ng-repeat="action in task.flowElement.actions"><a href="javascript: return false;" ng-click='executarProcesso(action);'><i class="fa fa-circle"> <translate>{{action.name}}</translate></i></a> | |
| 17 | - </li> | |
| 18 | - | |
| 19 | - </ul> | |
| 20 | -</div> | |
| 21 | - | |
| 22 | -<span class="divider-vertical"></span> | |
| 23 | - | |
| 24 | -<button type="button" class="btn btn-clear" ng-click="novoProcesso();"> | |
| 25 | - <i class="fa fa-plus-circle yellow-dark"></i> | |
| 26 | - <translate>ECM.LABEL.NOVOPROCESSO</translate> | |
| 27 | -</button> | |
| 28 | - | |
| 29 | -<button type="button" class="btn btn-clear" ng-click="editProcessoECM()"> | |
| 30 | - <i class="fa fa-pencil blue"></i> | |
| 31 | - <translate>LABEL.EDITAR</translate> | |
| 32 | -</button> | |
| 33 | - | |
| 34 | -<button type="button" class="btn btn-clear" ng-click="concluir()"> | |
| 35 | - <i class="ace-icon fa fa-check green"></i> | |
| 36 | - <translate>ECM.LABEL.CONCLUIR</translate> | |
| 37 | -</button> | |
| 38 | - | |
| 39 | - | |
| 40 | -<button type="button" class="btn btn-clear" ng-click="newDocument()"> | |
| 41 | - <i class="fa fa-book blue"></i> | |
| 42 | - <translate>ECM.LABEL.INCLUIRDOCUMENTO</translate> | |
| 43 | -</button> | |
| 44 | - | |
| 45 | -<span class="divider-vertical"></span> | |
| 46 | - | |
| 47 | -<div class="btn-group dropdown" role="group" dropdown> | |
| 48 | - <button type="button" class="btn btn-clear" dropdown-toggle> | |
| 49 | - <i class="fa fa-list"></i> | |
| 50 | - <translate>ECM.LABEL.ACAODEPROCESSO</translate> | |
| 51 | - <span class="fa fa-caret-down icon-on-right"></span> | |
| 52 | - </button> | |
| 53 | - | |
| 54 | - <ul class="dropdown-menu-center dropdown-menu dropdown-caret" role="menu"> | |
| 55 | - <li><a href="#void" ng-click="editProcessoRelacionado();"><i class="fa fa-link"></i> <translate>ECM.LABEL.PROCESSORELACIONADOS</translate></a></li> | |
| 56 | - <li><a href="#void" ng-click='enviarProcesso();'><i class="fa fa-share-square-o">  </i> <translate>ECM.LABEL.ENVIAR_PROCESSO</translate> </a></li> | |
| 57 | - <li><a href="#void" ng-click='anexarProcesso();'><i class="fa fa-paperclip">  </i> <translate>ECM.LABEL.ANEXAR_ESTE_PROCESSO</translate> </a></li> | |
| 58 | - <li><a href="#void;" ng-click='gerenciarCredenciaisProcesso();'><i class="fa fa-user-plus">  </i> <translate>ECM.LABEL.GERENCIAR_CREDENCIAIS_ACESSO</translate> </a></li> | |
| 59 | - <li><a href="javascript: return false;" ng-click='exibirDialogConfirmacaoRemoverCredencial()' ng-if="credencialUsuarioProcesso.id"><i class="fa fa-user-plus">  </i> <translate>ECM.LABEL.RENUNCIAR_CREDENCIAL</translate> | |
| 60 | - </a></li> | |
| 61 | - <li><a href="#void" ng-click='classificarDocumentoProceso();'><i class="fa fa fa-eye">  </i> <translate>ECM.LABEL.VALIDAR_NIVEL_ACESSO</translate> </a></li> | |
| 62 | - | |
| 63 | - | |
| 64 | - <!--<li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.ENVIARCORRESPONDENCIA</translate></a></li> | |
| 65 | - <li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.CIENCIA</translate></a></li> | |
| 66 | - <li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.DUPLICARPROCESSO</translate></a></li> </a></li> | |
| 67 | - <li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.GERENCIARDISPONIBILIZACAOACESSOEXTERNO</translate></a></li> | |
| 68 | - <li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.ACOMPANHAMENTOESPECIAL</translate> </a></li> | |
| 69 | - <li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.ANEXARPROCESSO</translate> </a></li> | |
| 70 | - <li><a href="#void"><i class="fa fa-file-o"></i> <translate>LABEL.GERARARQUIVOPROCESSO</translate></a></li> --> | |
| 71 | - </ul> | |
| 72 | -</div> | |
| 73 | - | |
| 74 | - |