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,4 +95,41 @@ public interface CredencialProcessoDao extends CitGenericDAO { | ||
95 | */ | 95 | */ |
96 | CredencialProcesso obterPorGrupoEProcesso(Long idProcesso, Long idGrupo); | 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,6 +2,7 @@ package br.com.centralit.api.dao; | ||
2 | 2 | ||
3 | import java.util.Collection; | 3 | import java.util.Collection; |
4 | 4 | ||
5 | +import br.com.centralit.api.model.CredencialProcesso; | ||
5 | import br.com.centralit.api.model.HistoricoCredencialProcesso; | 6 | import br.com.centralit.api.model.HistoricoCredencialProcesso; |
6 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; | 7 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
7 | 8 | ||
@@ -58,4 +59,23 @@ public interface HistoricoCredencialProcessoDao extends CitGenericDAO { | @@ -58,4 +59,23 @@ public interface HistoricoCredencialProcessoDao extends CitGenericDAO { | ||
58 | */ | 59 | */ |
59 | Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso); | 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,4 +175,58 @@ public class CredencialProcessoDaoHibernate extends CitGenericDAOImpl implements | ||
175 | return this.searchUnique(searchSeven, persistentClass); | 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,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,11 +10,13 @@ import javax.persistence.GenerationType; | ||
10 | import javax.persistence.Id; | 10 | import javax.persistence.Id; |
11 | import javax.persistence.ManyToOne; | 11 | import javax.persistence.ManyToOne; |
12 | import javax.persistence.OneToMany; | 12 | import javax.persistence.OneToMany; |
13 | +import javax.persistence.Transient; | ||
13 | 14 | ||
14 | import br.com.centralit.framework.json.Views; | 15 | import br.com.centralit.framework.json.Views; |
15 | import br.com.centralit.framework.model.Grupo; | 16 | import br.com.centralit.framework.model.Grupo; |
16 | import br.com.centralit.framework.model.Usuario; | 17 | import br.com.centralit.framework.model.Usuario; |
17 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; | 18 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; |
19 | +import br.com.centralit.framework.util.UtilObjeto; | ||
18 | 20 | ||
19 | import com.fasterxml.jackson.annotation.JsonView; | 21 | import com.fasterxml.jackson.annotation.JsonView; |
20 | 22 | ||
@@ -70,6 +72,15 @@ public class CredencialProcesso extends PersistentObjectAudit { | @@ -70,6 +72,15 @@ public class CredencialProcesso extends PersistentObjectAudit { | ||
70 | @JsonView({ Views.CredencialProcessoView.class }) | 72 | @JsonView({ Views.CredencialProcessoView.class }) |
71 | private String icon; | 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 | /** Atributo processo. */ | 84 | /** Atributo processo. */ |
74 | @ManyToOne(fetch = FetchType.LAZY) | 85 | @ManyToOne(fetch = FetchType.LAZY) |
75 | @JsonView({ Views.CredencialProcessoView.class}) | 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,6 +14,7 @@ import javax.persistence.TemporalType; | ||
14 | import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; | 14 | import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; |
15 | import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; | 15 | import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; |
16 | import br.com.centralit.framework.json.Views; | 16 | import br.com.centralit.framework.json.Views; |
17 | +import br.com.centralit.framework.model.Grupo; | ||
17 | import br.com.centralit.framework.model.Usuario; | 18 | import br.com.centralit.framework.model.Usuario; |
18 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; | 19 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; |
19 | import br.com.centralit.framework.util.UtilObjeto; | 20 | import br.com.centralit.framework.util.UtilObjeto; |
@@ -73,6 +74,13 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { | @@ -73,6 +74,13 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { | ||
73 | @JsonView({ Views.HistoricoCredencialProcesso.class }) | 74 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
74 | private Calendar dataDescredenciado; | 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 | /** Atributo credencialProcesso. */ | 84 | /** Atributo credencialProcesso. */ |
77 | @ManyToOne(fetch = FetchType.LAZY) | 85 | @ManyToOne(fetch = FetchType.LAZY) |
78 | @JsonView({ Views.HistoricoCredencialProcesso.class }) | 86 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
@@ -83,6 +91,38 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { | @@ -83,6 +91,38 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { | ||
83 | @JsonView({ Views.HistoricoCredencialProcesso.class }) | 91 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
84 | private Usuario descredenciador; | 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 | * Retorna o valor do atributo <code>id</code> | 127 | * Retorna o valor do atributo <code>id</code> |
88 | * | 128 | * |
@@ -163,6 +203,66 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { | @@ -163,6 +203,66 @@ public class HistoricoCredencialProcesso extends PersistentObjectAudit { | ||
163 | this.descredenciador = descredenciador; | 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 | @JsonView({ Views.HistoricoCredencialProcesso.class }) | 266 | @JsonView({ Views.HistoricoCredencialProcesso.class }) |
167 | public String getUnidadeUsuarioCredenciado() { | 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,7 +143,7 @@ public class Processo extends PersistentObjectUnidade { | ||
143 | @ManyToOne(fetch = FetchType.LAZY) | 143 | @ManyToOne(fetch = FetchType.LAZY) |
144 | @JsonView({ Views.ProcessoList.class }) | 144 | @JsonView({ Views.ProcessoList.class }) |
145 | private NivelAcessoTipoProcesso nivelAcesso; | 145 | private NivelAcessoTipoProcesso nivelAcesso; |
146 | - | 146 | + |
147 | @ManyToOne(fetch = FetchType.LAZY) | 147 | @ManyToOne(fetch = FetchType.LAZY) |
148 | @JsonView({ Views.ProcessoList.class }) | 148 | @JsonView({ Views.ProcessoList.class }) |
149 | private NivelAcessoTipoProcesso nivelAcessoOriginal; | 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,9 +70,6 @@ public class TipoProcesso extends PersistentObjectUnidade { | ||
70 | @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoList.class, Views.ProcessoRelacionadoList.class }) | 70 | @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoList.class, Views.ProcessoRelacionadoList.class }) |
71 | private String nome; | 71 | private String nome; |
72 | 72 | ||
73 | - @Field | ||
74 | - private String name; | ||
75 | - | ||
76 | /** Atributo nome. */ | 73 | /** Atributo nome. */ |
77 | @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoEdit.class }) | 74 | @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoEdit.class }) |
78 | private String processoNegocio; | 75 | private String processoNegocio; |
@@ -207,24 +204,4 @@ public class TipoProcesso extends PersistentObjectUnidade { | @@ -207,24 +204,4 @@ public class TipoProcesso extends PersistentObjectUnidade { | ||
207 | this.processoNegocio = processoNegocio; | 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,7 +4,6 @@ import java.util.Collection; | ||
4 | 4 | ||
5 | import br.com.centralit.api.model.CredencialProcesso; | 5 | import br.com.centralit.api.model.CredencialProcesso; |
6 | import br.com.centralit.api.model.Processo; | 6 | import br.com.centralit.api.model.Processo; |
7 | -import br.com.centralit.api.viewHelper.CredencialUsuarioVH; | ||
8 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; | 7 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; |
9 | import br.com.centralit.api.viewHelper.HerancaSistemaVH; | 8 | import br.com.centralit.api.viewHelper.HerancaSistemaVH; |
10 | import br.com.centralit.framework.service.arquitetura.GenericService; | 9 | import br.com.centralit.framework.service.arquitetura.GenericService; |
@@ -123,14 +122,82 @@ public interface CredencialProcessoService extends GenericService<CredencialProc | @@ -123,14 +122,82 @@ public interface CredencialProcessoService extends GenericService<CredencialProc | ||
123 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 122 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
124 | * </p> | 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 | * @author rogerio.costa | 161 | * @author rogerio.costa |
129 | * | 162 | * |
130 | * @param idProcesso | 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,6 +2,7 @@ package br.com.centralit.api.service; | ||
2 | 2 | ||
3 | import java.util.Collection; | 3 | import java.util.Collection; |
4 | 4 | ||
5 | +import br.com.centralit.api.model.CredencialProcesso; | ||
5 | import br.com.centralit.api.model.HistoricoCredencialProcesso; | 6 | import br.com.centralit.api.model.HistoricoCredencialProcesso; |
6 | import br.com.centralit.framework.service.arquitetura.GenericService; | 7 | import br.com.centralit.framework.service.arquitetura.GenericService; |
7 | 8 | ||
@@ -58,4 +59,23 @@ public interface HistoricoCredencialProcessoService extends GenericService<Histo | @@ -58,4 +59,23 @@ public interface HistoricoCredencialProcessoService extends GenericService<Histo | ||
58 | */ | 59 | */ |
59 | Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso); | 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 | package br.com.centralit.api.service.impl; | 1 | package br.com.centralit.api.service.impl; |
2 | 2 | ||
3 | -import java.util.ArrayList; | ||
4 | import java.util.Collection; | 3 | import java.util.Collection; |
5 | -import java.util.HashMap; | ||
6 | import java.util.LinkedList; | 4 | import java.util.LinkedList; |
7 | import java.util.List; | 5 | import java.util.List; |
8 | -import java.util.Map; | ||
9 | 6 | ||
10 | -import org.json.JSONObject; | ||
11 | import org.springframework.beans.factory.annotation.Autowired; | 7 | import org.springframework.beans.factory.annotation.Autowired; |
12 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
13 | 9 | ||
@@ -23,11 +19,8 @@ import br.com.centralit.api.service.HistoricoCredencialProcessoService; | @@ -23,11 +19,8 @@ import br.com.centralit.api.service.HistoricoCredencialProcessoService; | ||
23 | import br.com.centralit.api.service.ProcessoService; | 19 | import br.com.centralit.api.service.ProcessoService; |
24 | import br.com.centralit.api.service.SigiloService; | 20 | import br.com.centralit.api.service.SigiloService; |
25 | import br.com.centralit.api.service.UsuarioService; | 21 | import br.com.centralit.api.service.UsuarioService; |
26 | -import br.com.centralit.api.viewHelper.CredencialUsuarioVH; | ||
27 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; | 22 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; |
28 | import br.com.centralit.api.viewHelper.HerancaSistemaVH; | 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 | import br.com.centralit.framework.exception.BusinessException; | 24 | import br.com.centralit.framework.exception.BusinessException; |
32 | import br.com.centralit.framework.exception.CodigoErro; | 25 | import br.com.centralit.framework.exception.CodigoErro; |
33 | import br.com.centralit.framework.model.Grupo; | 26 | import br.com.centralit.framework.model.Grupo; |
@@ -95,8 +88,12 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -95,8 +88,12 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
95 | @Autowired | 88 | @Autowired |
96 | private SigiloService sigiloService; | 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 | * Responsável pela criação de novas instâncias desta classe. | 99 | * Responsável pela criação de novas instâncias desta classe. |
@@ -131,9 +128,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -131,9 +128,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
131 | @Override | 128 | @Override |
132 | public Collection<CredencialProcesso> save(Collection<CredencialProcesso> credenciais) { | 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,52 +175,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
176 | } | 175 | } |
177 | // Gera a credencial do usuario que crio o processo | 176 | // Gera a credencial do usuario que crio o processo |
178 | super.save(new CredencialProcesso(processo, getUsuario())); | 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,9 +222,10 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
266 | * | 222 | * |
267 | * @param credenciais | 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 | for (CredencialProcesso credencialProcesso : credenciais) { | 230 | for (CredencialProcesso credencialProcesso : credenciais) { |
274 | 231 | ||
@@ -277,9 +234,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -277,9 +234,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
277 | if (UtilObjeto.isReferencia(credencialProcesso.getGrupo())) { | 234 | if (UtilObjeto.isReferencia(credencialProcesso.getGrupo())) { |
278 | 235 | ||
279 | credencialProcesso.setGrupo(this.grupoService.getReference(credencialProcesso.getGrupo().getId())); | 236 | credencialProcesso.setGrupo(this.grupoService.getReference(credencialProcesso.getGrupo().getId())); |
237 | + grupos.add(credencialProcesso.getGrupo().getSigla()); | ||
280 | } else { | 238 | } else { |
281 | 239 | ||
282 | credencialProcesso.setUsuario(this.usuarioService.find(credencialProcesso.getUsuario().getId())); | 240 | credencialProcesso.setUsuario(this.usuarioService.find(credencialProcesso.getUsuario().getId())); |
241 | + usuarios.add(credencialProcesso.getUsuario().getUsername()); | ||
283 | 242 | ||
284 | } | 243 | } |
285 | // Verifica se a credencial é nova, caso seja cria um histórico | 244 | // Verifica se a credencial é nova, caso seja cria um histórico |
@@ -287,8 +246,39 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -287,8 +246,39 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
287 | 246 | ||
288 | credencialProcesso.setHistoricoCredencialProcessos(new LinkedList<HistoricoCredencialProcesso>()); | 247 | credencialProcesso.setHistoricoCredencialProcessos(new LinkedList<HistoricoCredencialProcesso>()); |
289 | credencialProcesso.getHistoricoCredencialProcessos().add(this.addHistorico(credencialProcesso)); | 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,6 +303,13 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
313 | 303 | ||
314 | historicoCredencialProcesso.setCredencialProcesso(credencialProcesso); | 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 | return historicoCredencialProcesso; | 313 | return historicoCredencialProcesso; |
317 | } | 314 | } |
318 | 315 | ||
@@ -321,10 +318,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -321,10 +318,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
321 | 318 | ||
322 | CredencialProcesso credencialProcesso = this.getReference(id); | 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 | return super.removeById(id); | 325 | return super.removeById(id); |
330 | } | 326 | } |
@@ -338,6 +334,87 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -338,6 +334,87 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
338 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 334 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
339 | * </p> | 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 | * Método responsável por salvar o histórico do descredenciamento | 418 | * Método responsável por salvar o histórico do descredenciamento |
342 | * | 419 | * |
343 | * @author rogerio.costa | 420 | * @author rogerio.costa |
@@ -346,10 +423,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -346,10 +423,9 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
346 | */ | 423 | */ |
347 | private void saveHistoricoDescredenciado(CredencialProcesso credencialProcesso) { | 424 | private void saveHistoricoDescredenciado(CredencialProcesso credencialProcesso) { |
348 | 425 | ||
349 | - HistoricoCredencialProcesso historicoCredencialProcesso = new HistoricoCredencialProcesso(); | 426 | + HistoricoCredencialProcesso historicoCredencialProcesso = this.historicoCredencialProcessoService.findByCredencialAndCredenciado(credencialProcesso); |
350 | 427 | ||
351 | historicoCredencialProcesso.setDataDescredenciado(UtilDate.getDataAtualCalendar()); | 428 | historicoCredencialProcesso.setDataDescredenciado(UtilDate.getDataAtualCalendar()); |
352 | - historicoCredencialProcesso.setCredencialProcesso(credencialProcesso); | ||
353 | historicoCredencialProcesso.setDescredenciador(getUsuario()); | 429 | historicoCredencialProcesso.setDescredenciador(getUsuario()); |
354 | 430 | ||
355 | this.historicoCredencialProcessoService.save(historicoCredencialProcesso); | 431 | this.historicoCredencialProcessoService.save(historicoCredencialProcesso); |
@@ -364,6 +440,30 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -364,6 +440,30 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
364 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 440 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
365 | * </p> | 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 | * Método responsável por listar grupo e usuarios que tem credenciais herdadas do sistema. | 467 | * Método responsável por listar grupo e usuarios que tem credenciais herdadas do sistema. |
368 | * | 468 | * |
369 | * @author rogerio.costa | 469 | * @author rogerio.costa |
@@ -388,11 +488,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -388,11 +488,11 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
388 | 488 | ||
389 | for (Grupo grupo : grupos) { | 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 | return herancaList; | 498 | return herancaList; |
@@ -433,60 +533,142 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | @@ -433,60 +533,142 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
433 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 533 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
434 | * </p> | 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 | * @author rogerio.costa | 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 | } else { | 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,25 +680,19 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
498 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 680 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
499 | * </p> | 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 | * @author rogerio.costa | 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,26 +704,24 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
528 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 704 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
529 | * </p> | 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 | * @author rogerio.costa | 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,16 +733,55 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl<Credencial | ||
559 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 733 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
560 | * </p> | 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 | * @author rogerio.costa | 738 | * @author rogerio.costa |
565 | * | 739 | * |
566 | - * @return Collection<GrupoUsuarioVH> | 740 | + * @param idProcesso |
741 | + * @return boolean | ||
567 | */ | 742 | */ |
568 | @Override | 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,9 +775,8 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
775 | 775 | ||
776 | if (!UtilColecao.isVazio(listaDocumentos)) { | 776 | if (!UtilColecao.isVazio(listaDocumentos)) { |
777 | for (DocumentoGed documento : listaDocumentos) { | 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 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
6 | import org.springframework.stereotype.Service; | 6 | import org.springframework.stereotype.Service; |
7 | 7 | ||
8 | import br.com.centralit.api.dao.HistoricoCredencialProcessoDao; | 8 | import br.com.centralit.api.dao.HistoricoCredencialProcessoDao; |
9 | +import br.com.centralit.api.model.CredencialProcesso; | ||
9 | import br.com.centralit.api.model.HistoricoCredencialProcesso; | 10 | import br.com.centralit.api.model.HistoricoCredencialProcesso; |
10 | import br.com.centralit.api.service.HistoricoCredencialProcessoService; | 11 | import br.com.centralit.api.service.HistoricoCredencialProcessoService; |
11 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; | 12 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
@@ -76,9 +77,31 @@ public class HistoricoCredencialProcessoServiceImpl extends GenericServiceImpl<H | @@ -76,9 +77,31 @@ public class HistoricoCredencialProcessoServiceImpl extends GenericServiceImpl<H | ||
76 | * | 77 | * |
77 | * @return Collection<HistoricoCredencialProcesso> | 78 | * @return Collection<HistoricoCredencialProcesso> |
78 | */ | 79 | */ |
79 | - public Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso){ | ||
80 | - | 80 | + public Collection<HistoricoCredencialProcesso> findByIdProcessoAndIdProcessoRemocao(Long idProcesso) { |
81 | + | ||
81 | return this.historicoCredencialProcessoDao.findByIdProcessoAndIdProcessoRemocao(idProcesso); | 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,9 +6,12 @@ import java.util.Calendar; | ||
6 | import java.util.Collection; | 6 | import java.util.Collection; |
7 | import java.util.GregorianCalendar; | 7 | import java.util.GregorianCalendar; |
8 | import java.util.HashMap; | 8 | import java.util.HashMap; |
9 | +import java.util.LinkedList; | ||
9 | import java.util.List; | 10 | import java.util.List; |
10 | import java.util.Map; | 11 | import java.util.Map; |
11 | 12 | ||
13 | +import javax.servlet.http.HttpServletRequest; | ||
14 | + | ||
12 | import org.apache.commons.lang.StringUtils; | 15 | import org.apache.commons.lang.StringUtils; |
13 | import org.json.JSONObject; | 16 | import org.json.JSONObject; |
14 | import org.springframework.beans.factory.annotation.Autowired; | 17 | import org.springframework.beans.factory.annotation.Autowired; |
@@ -22,6 +25,8 @@ import br.com.centralit.api.model.EstruturaOrganizacionalECM; | @@ -22,6 +25,8 @@ import br.com.centralit.api.model.EstruturaOrganizacionalECM; | ||
22 | import br.com.centralit.api.model.InteressadoProcesso; | 25 | import br.com.centralit.api.model.InteressadoProcesso; |
23 | import br.com.centralit.api.model.PlanoClassificacao; | 26 | import br.com.centralit.api.model.PlanoClassificacao; |
24 | import br.com.centralit.api.model.Processo; | 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 | import br.com.centralit.api.model.Temporalidade; | 30 | import br.com.centralit.api.model.Temporalidade; |
26 | import br.com.centralit.api.model.UnidadeProcesso; | 31 | import br.com.centralit.api.model.UnidadeProcesso; |
27 | import br.com.centralit.api.service.CredencialProcessoService; | 32 | import br.com.centralit.api.service.CredencialProcessoService; |
@@ -40,6 +45,7 @@ import br.com.centralit.framework.esi.environment.EnvironmentOutput; | @@ -40,6 +45,7 @@ import br.com.centralit.framework.esi.environment.EnvironmentOutput; | ||
40 | import br.com.centralit.framework.esi.environment.EnvironmentVariable; | 45 | import br.com.centralit.framework.esi.environment.EnvironmentVariable; |
41 | import br.com.centralit.framework.exception.BusinessException; | 46 | import br.com.centralit.framework.exception.BusinessException; |
42 | import br.com.centralit.framework.exception.CodigoErro; | 47 | import br.com.centralit.framework.exception.CodigoErro; |
48 | +import br.com.centralit.framework.model.Grupo; | ||
43 | import br.com.centralit.framework.model.Unidade; | 49 | import br.com.centralit.framework.model.Unidade; |
44 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; | 50 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
45 | import br.com.centralit.framework.util.UtilColecao; | 51 | import br.com.centralit.framework.util.UtilColecao; |
@@ -123,6 +129,10 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | @@ -123,6 +129,10 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | ||
123 | @Autowired | 129 | @Autowired |
124 | private CredencialProcessoService credencialProcessoService; | 130 | private CredencialProcessoService credencialProcessoService; |
125 | 131 | ||
132 | + /** Atributo request. */ | ||
133 | + @Autowired | ||
134 | + private HttpServletRequest request; | ||
135 | + | ||
126 | @Autowired | 136 | @Autowired |
127 | public ProcessoServiceImpl( final ProcessoDao processoDao, @Qualifier("processoValidator") final Validator validator ) { | 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,7 +152,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | ||
142 | 152 | ||
143 | final Processo processo = super.save(entity); | 153 | final Processo processo = super.save(entity); |
144 | 154 | ||
145 | - /* this.gerarCredenciais(processo); */ | 155 | +// this.credencialProcessoService.saveCredenciais(processo); |
146 | 156 | ||
147 | if (processo.getTipoProtocolo().getCodigo().equals(1L)) { | 157 | if (processo.getTipoProtocolo().getCodigo().equals(1L)) { |
148 | this.gerarNUP(processo); | 158 | this.gerarNUP(processo); |
@@ -274,11 +284,23 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | @@ -274,11 +284,23 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | ||
274 | final JSONObject processoJSON = new JSONObject(mapProcesso); | 284 | final JSONObject processoJSON = new JSONObject(mapProcesso); |
275 | 285 | ||
276 | variaveis.add(new EnvironmentVariable("idProcesso", VariableTypeEnum.LONG, processo.getId(), false)); | 286 | variaveis.add(new EnvironmentVariable("idProcesso", VariableTypeEnum.LONG, processo.getId(), false)); |
277 | - variaveis.add(new EnvironmentVariable("solicitante", VariableTypeEnum.TEXT, processo.getAutor().getUsername(), false)); | ||
278 | variaveis.add(new EnvironmentVariable("nup", VariableTypeEnum.JSON, processo.getNup(), false)); | 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 | variaveis.add(new EnvironmentVariable("grupoPadrao", VariableTypeEnum.TEXT, unidade.getGrupo().getSigla(), false)); | 305 | variaveis.add(new EnvironmentVariable("grupoPadrao", VariableTypeEnum.TEXT, unidade.getGrupo().getSigla(), false)); |
284 | } else { | 306 | } else { |
@@ -306,6 +328,59 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | @@ -306,6 +328,59 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | ||
306 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 328 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
307 | * </p> | 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 | * Método responsável por resolver as pripriedades transiente | 384 | * Método responsável por resolver as pripriedades transiente |
310 | * | 385 | * |
311 | * @author rogerio.costa | 386 | * @author rogerio.costa |
@@ -498,6 +573,8 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | @@ -498,6 +573,8 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl | ||
498 | 573 | ||
499 | final Processo processo = super.getReference(id); | 574 | final Processo processo = super.getReference(id); |
500 | 575 | ||
576 | + request.getSession().setAttribute("idProcesso", id); | ||
577 | + | ||
501 | processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id)); | 578 | processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id)); |
502 | 579 | ||
503 | return processo; | 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,6 +38,10 @@ import br.com.centralit.framework.json.Views; | ||
38 | */ | 38 | */ |
39 | public class HerancaSistemaVH { | 39 | public class HerancaSistemaVH { |
40 | 40 | ||
41 | + /** Atributo id. */ | ||
42 | + @JsonView({ Views.GenericView.class }) | ||
43 | + private Long id; | ||
44 | + | ||
41 | /** Atributo nome. */ | 45 | /** Atributo nome. */ |
42 | @JsonView({ Views.GenericView.class }) | 46 | @JsonView({ Views.GenericView.class }) |
43 | private String nome; | 47 | private String nome; |
@@ -51,9 +55,11 @@ public class HerancaSistemaVH { | @@ -51,9 +55,11 @@ public class HerancaSistemaVH { | ||
51 | * | 55 | * |
52 | * @param nome | 56 | * @param nome |
53 | * @param nomeUnidade | 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 | this.nome = nome; | 63 | this.nome = nome; |
58 | this.nomeUnidade = nomeUnidade; | 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,12 +4,14 @@ import java.util.Collection; | ||
4 | 4 | ||
5 | import org.springframework.beans.factory.annotation.Autowired; | 5 | import org.springframework.beans.factory.annotation.Autowired; |
6 | import org.springframework.stereotype.Controller; | 6 | import org.springframework.stereotype.Controller; |
7 | +import org.springframework.web.bind.annotation.PathVariable; | ||
7 | import org.springframework.web.bind.annotation.RequestBody; | 8 | import org.springframework.web.bind.annotation.RequestBody; |
8 | import org.springframework.web.bind.annotation.RequestMapping; | 9 | import org.springframework.web.bind.annotation.RequestMapping; |
9 | import org.springframework.web.bind.annotation.RequestMethod; | 10 | import org.springframework.web.bind.annotation.RequestMethod; |
10 | import org.springframework.web.bind.annotation.RequestParam; | 11 | import org.springframework.web.bind.annotation.RequestParam; |
11 | import org.springframework.web.bind.annotation.ResponseBody; | 12 | import org.springframework.web.bind.annotation.ResponseBody; |
12 | 13 | ||
14 | +import br.com.centralit.api.framework.json.ViewsEcm; | ||
13 | import br.com.centralit.api.model.CredencialProcesso; | 15 | import br.com.centralit.api.model.CredencialProcesso; |
14 | import br.com.centralit.api.service.CredencialProcessoService; | 16 | import br.com.centralit.api.service.CredencialProcessoService; |
15 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; | 17 | import br.com.centralit.api.viewHelper.GrupoUsuarioVH; |
@@ -122,18 +124,31 @@ public class CredencialProcessoController extends GenericController<CredencialPr | @@ -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 | * Método responsável por listar as credenciais herdadas | 135 | * Método responsável por listar as credenciais herdadas |
130 | - * | 136 | + * |
131 | * @author rogerio.costa | 137 | * @author rogerio.costa |
132 | - * | 138 | + * |
133 | * @param idProcesso | 139 | * @param idProcesso |
134 | * @return | 140 | * @return |
135 | * @throws Exception | 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 | @RequestMapping(value = "/findCredenciaisHerdadas", method = RequestMethod.GET, produces = "application/json") | 152 | @RequestMapping(value = "/findCredenciaisHerdadas", method = RequestMethod.GET, produces = "application/json") |
138 | @ResponseBody | 153 | @ResponseBody |
139 | public ResponseBodyWrapper findCredenciaisHerdadas(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception { | 154 | public ResponseBodyWrapper findCredenciaisHerdadas(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception { |
@@ -143,24 +158,11 @@ public class CredencialProcessoController extends GenericController<CredencialPr | @@ -143,24 +158,11 @@ public class CredencialProcessoController extends GenericController<CredencialPr | ||
143 | return responseBody; | 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 | @ResponseBody | 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 | return responseBody; | 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,8 +194,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen | ||
194 | list.add(new Dominio("tipoFormaCriacao", "Anexo", "ANEXO", 2L)); | 194 | list.add(new Dominio("tipoFormaCriacao", "Anexo", "ANEXO", 2L)); |
195 | list.add(new Dominio("tipoFormaCriacao", "Ambos", "AMBOS", 3L)); | 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 | this.dominioService.saveListIfNotExist(list); | 200 | this.dominioService.saveListIfNotExist(list); |
201 | 201 | ||
@@ -408,6 +408,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen | @@ -408,6 +408,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen | ||
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)); | 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 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.ERRO_CONFIGURACAO_GRUPO_PADRAO_USUARIO", "O grupo padrão não foi configurado para unidade vigente", dominio, modulo)); | 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 | 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)); | 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,7 +36,9 @@ | ||
36 | p:jpaPropertyMap-ref="jpaPropertyMap" p:jpaVendorAdapter-ref="jpaVendorAdapter" /> | 36 | p:jpaPropertyMap-ref="jpaPropertyMap" p:jpaVendorAdapter-ref="jpaVendorAdapter" /> |
37 | 37 | ||
38 | <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> | 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 | <util:map id="jpaPropertyMap"> | 42 | <util:map id="jpaPropertyMap"> |
41 | <entry key="generateDdl" value="${hibernate.generate.ddl}" /> | 43 | <entry key="generateDdl" value="${hibernate.generate.ddl}" /> |
42 | <entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}" /> | 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,19 +8,19 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | ||
8 | 8 | ||
9 | 9 | ||
10 | //Iniciar credencial de acesso | 10 | //Iniciar credencial de acesso |
11 | - $scope.iniciarCredencial = function(idProcesso, credencialUsuarioProcesso){ | 11 | + $scope.iniciarCredencial = function(processo){ |
12 | this.credenciarProcessoForm = $scope.credencialProcessoController.credenciarProcessoForm; | 12 | this.credenciarProcessoForm = $scope.credencialProcessoController.credenciarProcessoForm; |
13 | $scope.credenciais = []; | 13 | $scope.credenciais = []; |
14 | - $scope.idProcesso = idProcesso; | 14 | + $scope.processo = processo; |
15 | $scope.herdadas = []; | 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 | result.forEach(function (credencialProcesso) { | 18 | result.forEach(function (credencialProcesso) { |
19 | 19 | ||
20 | $scope.credenciais.push(credencialProcesso.originalElement); | 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 | $scope.herdadas = result; | 24 | $scope.herdadas = result; |
25 | }); | 25 | }); |
26 | 26 | ||
@@ -39,7 +39,7 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | @@ -39,7 +39,7 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | ||
39 | 39 | ||
40 | $scope.historicos = []; | 40 | $scope.historicos = []; |
41 | 41 | ||
42 | - HistoricoCredencialProcessoRepository.findByIdProcessoAndIdProcessoRemocao($scope.idProcesso).then(function(result) { | 42 | + HistoricoCredencialProcessoRepository.findByIdProcessoAndIdProcessoRemocao($scope.processo.id).then(function(result) { |
43 | result.forEach(function (historico) { | 43 | result.forEach(function (historico) { |
44 | 44 | ||
45 | $scope.historicos.push(historico.originalElement); | 45 | $scope.historicos.push(historico.originalElement); |
@@ -81,7 +81,9 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | @@ -81,7 +81,9 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | ||
81 | 81 | ||
82 | var listSemGrupoAdicionado = $filter('idNotEqualObj')(result, $scope.credenciais, 'grupo'); | 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,9 +101,8 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | ||
99 | var credencialProcesso = {}; | 101 | var credencialProcesso = {}; |
100 | credencialProcesso.id = $scope.credencialProcesso.id; | 102 | credencialProcesso.id = $scope.credencialProcesso.id; |
101 | credencialProcesso.permiteCredenciar = $scope.credencialProcesso.permiteCredenciar; | 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 | //Verifica se o grupUsuario é um grupo, codigo 1 é grupo e 2 usuário | 107 | //Verifica se o grupUsuario é um grupo, codigo 1 é grupo e 2 usuário |
107 | if($scope.credencialProcesso.grupoUsuario.codigo == 1){ | 108 | if($scope.credencialProcesso.grupoUsuario.codigo == 1){ |
@@ -144,66 +145,59 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | @@ -144,66 +145,59 @@ citApp.controller('CredencialProcessoController', ['$scope', 'CredencialProcesso | ||
144 | }; | 145 | }; |
145 | 146 | ||
146 | //Editar credencial | 147 | //Editar credencial |
147 | - $scope.editCredencial = function(){ | 148 | + $scope.editCredencial = function(credencialProcesso){ |
148 | //prepara objeto edição | 149 | //prepara objeto edição |
149 | $scope.credencialProcesso = { | 150 | $scope.credencialProcesso = { |
150 | edit : true, | 151 | edit : true, |
151 | - $$hashKey : $scope.credencialProcessoChecked.$$hashKey, | ||
152 | - permiteCredenciar : $scope.credencialProcessoChecked.permiteCredenciar, | 152 | + $$hashKey : credencialProcesso.$$hashKey, |
153 | + permiteCredenciar : credencialProcesso.permiteCredenciar, | ||
153 | grupoUsuario : { | 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 | //Exibir o dialog de confirmação de exclusão | 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 | //Remover credencial | 168 | //Remover credencial |
178 | $scope.remove = function(){ | 169 | $scope.remove = function(){ |
179 | 170 | ||
180 | //Obter o index do elemento | 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 | //Verifica se a credencial selecionada já foi persistida | 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 | $scope.findHistorico(); | 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 | $scope.$modalConfirmInstance.dismiss('cancel'); | 194 | $scope.$modalConfirmInstance.dismiss('cancel'); |
201 | }; | 195 | }; |
202 | 196 | ||
203 | //Verifica se o usuario logado tem permissão de remover a credencial | 197 | //Verifica se o usuario logado tem permissão de remover a credencial |
204 | $scope.verificarPermissaoRemover = function(){ | 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 | 'use strict'; | 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 | $scope.editProcessoRelacionado = function () { | 34 | $scope.editProcessoRelacionado = function () { |
47 | 35 | ||
48 | $scope.fecharPagina(); | 36 | $scope.fecharPagina(); |
@@ -594,7 +582,9 @@ citApp.controller( 'GerenciarProcessoController', [ | @@ -594,7 +582,9 @@ citApp.controller( 'GerenciarProcessoController', [ | ||
594 | $timeout( function () { | 582 | $timeout( function () { |
595 | // console.log('idProcesso:' + $scope.idProcesso); | 583 | // console.log('idProcesso:' + $scope.idProcesso); |
596 | ProcessoRepository.get( $scope.idProcesso ).then( function ( result ) { | 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 | CredencialProcessoRepository.obterCredencialUsuarioLogado( $scope.idProcesso ).then( function ( result ) { | 589 | CredencialProcessoRepository.obterCredencialUsuarioLogado( $scope.idProcesso ).then( function ( result ) { |
600 | $scope.credencialUsuarioProcesso = result.originalElement; | 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,10 +17,14 @@ citApp.factory('CredencialProcessoRepository', ['RestangularEcm', 'AbstractRepos | ||
17 | return restangularEcm.one(this.route).getList("findCredenciaisHerdadas", {idProcesso : idProcesso}).then(); | 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 | AbstractRepository.extend(CredencialProcessoRepository); | 30 | AbstractRepository.extend(CredencialProcessoRepository); |
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeCabecalhoGerenciarProcesso.html
@@ -1,74 +0,0 @@ | @@ -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 | - |