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