1
2
3
4
5 package ecar.permissao;
6
7 import java.util.ArrayList;
8 import java.util.Date;
9 import java.util.HashSet;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.Set;
13
14 import javax.servlet.http.HttpServletRequest;
15
16 import org.hibernate.HibernateException;
17 import org.hibernate.Session;
18 import org.hibernate.Transaction;
19
20 import comum.database.Dao;
21 import comum.util.Data;
22
23 import ecar.dao.ConfiguracaoDao;
24 import ecar.dao.EstruturaDao;
25 import ecar.dao.ItemEstrutUsuarioDao;
26 import ecar.dao.ItemEstruturaDao;
27 import ecar.exception.ECARException;
28 import ecar.historico.HistoricoIettus;
29 import ecar.historico.IHistorico;
30 import ecar.pojo.ConfiguracaoCfg;
31 import ecar.pojo.EstrutTpFuncAcmpEtttfa;
32 import ecar.pojo.HistoricoIettusH;
33 import ecar.pojo.HistoricoMaster;
34 import ecar.pojo.HistoricoMotivo;
35 import ecar.pojo.ItemEstUsutpfuacIettutfa;
36 import ecar.pojo.ItemEstrutUsuarioIettus;
37 import ecar.pojo.ItemEstruturaIett;
38 import ecar.pojo.TipoFuncAcompTpfa;
39 import gov.pr.celepar.framework.database.HibernateUtil;
40
41
42
43
44 public class ControlePermissao {
45
46 public static final String PERMISSAO_FUNCAO_ACOMPANHAMENTO = "F";
47 public static final String PERMISSAO_USUARIO = "U";
48 public static final String PERMISSAO_GRUPO = "G";
49 public static final String SIM = "S";
50 public static final String NAO = "N";
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 public void atualizarPermissoesItemEstrutura(ItemEstruturaIett item, Set fuacAnteriores, Session session, boolean novoItem, HttpServletRequest request) throws ECARException {
66
67 Iterator itFuncoesAcompanhamento = item.getEstruturaEtt().getEstrutTpFuncAcmpEtttfas().iterator();
68
69
70 HistoricoIettus historico = new HistoricoIettus(new ItemEstrutUsuarioIettus(),
71 HistoricoIettus.excluirPermissoes,
72 session,
73 new ConfiguracaoDao(request),
74 request);
75
76
77 while(itFuncoesAcompanhamento.hasNext()){
78
79 TipoFuncAcompTpfa funcaoAcompanhamento = ((EstrutTpFuncAcmpEtttfa) itFuncoesAcompanhamento.next()).getTipoFuncAcompTpfa();
80 ItemEstUsutpfuacIettutfa fuacNovo = getUsuarioAcompanhamento(item, funcaoAcompanhamento);
81 ItemEstUsutpfuacIettutfa fuacAnterior = getUsuarioAcompanhamento(fuacAnteriores, item, funcaoAcompanhamento);
82 if(fuacNovo == null && fuacAnterior != null) {
83 excluirPermissoesItem(item, fuacAnterior, session, request, historico);
84 }
85 }
86
87 itFuncoesAcompanhamento = item.getEstruturaEtt().getEstrutTpFuncAcmpEtttfas().iterator();
88
89 while(itFuncoesAcompanhamento.hasNext()){
90
91 EstrutTpFuncAcmpEtttfa funcaoAcomp = (EstrutTpFuncAcmpEtttfa) itFuncoesAcompanhamento.next();
92 TipoFuncAcompTpfa funcaoAcompanhamento = funcaoAcomp.getTipoFuncAcompTpfa();
93 ItemEstUsutpfuacIettutfa fuacNovo = getUsuarioAcompanhamento(item, funcaoAcompanhamento);
94 ItemEstUsutpfuacIettutfa fuacAnterior = getUsuarioAcompanhamento(fuacAnteriores, item, funcaoAcompanhamento);
95 if(fuacNovo != null){
96 if(fuacAnterior == null){
97 String manterProximoNivel = funcaoAcomp.getIndManterProximoNivelEtttfa();
98 ItemEstrutUsuarioIettus iettus = incluirPermissaoItem(item, fuacNovo,manterProximoNivel);
99 session.save(iettus);
100
101 item.getEstruturaEtt();
102
103
104 if(manterProximoNivel != null && manterProximoNivel.equals("S")){
105 incluirPermissoesItensFilho(item, fuacNovo, session,manterProximoNivel);
106 }
107
108 } else {
109 if(fuacNovo.getUsuarioUsu() != null && fuacAnterior.getUsuarioUsu() != null && !fuacNovo.getUsuarioUsu().equals(fuacAnterior.getUsuarioUsu())){
110 alterarPermissoesItem(item, fuacAnterior, session, request, historico);
111 } else if(fuacNovo.getSisAtributoSatb() != null && fuacAnterior.getSisAtributoSatb() != null && !fuacNovo.getSisAtributoSatb().equals(fuacAnterior.getSisAtributoSatb())){
112 alterarPermissoesItem(item, fuacAnterior, session, request, historico);
113 } else if(fuacNovo.getUsuarioUsu() != null && fuacAnterior.getUsuarioUsu() == null){
114 alterarPermissoesItem(item, fuacAnterior, session, request, historico);
115 } else if(fuacNovo.getSisAtributoSatb() != null && fuacAnterior.getSisAtributoSatb() == null){
116 alterarPermissoesItem(item, fuacAnterior, session, request, historico);
117 }
118 }
119 }
120 }
121
122 if(novoItem) {
123 Set iettusCopiaPai = copiarPermissoesItemPai(item);
124
125 Iterator it = iettusCopiaPai.iterator();
126 while(it.hasNext()) {
127 ItemEstrutUsuarioIettus iettus = (ItemEstrutUsuarioIettus)it.next();
128 session.save(iettus);
129 }
130 }
131 }
132
133
134
135
136
137
138
139
140
141
142
143 public void atualizarPermissoesPorFuncaoDeAcompanhamento(TipoFuncAcompTpfa funcao) throws ECARException {
144
145 ItemEstrutUsuarioIettus iettus;
146
147 Iterator it = funcao.getItemEstrutUsuarioIettuses().iterator();
148 while (it.hasNext()) {
149 iettus = (ItemEstrutUsuarioIettus) it.next();
150
151 if (PERMISSAO_FUNCAO_ACOMPANHAMENTO.equals(iettus.getCodTpPermIettus()) &&
152 iettus.getTipoFuncAcompTpfa().equals(funcao)) {
153
154 iettus.setIndLeituraIettus(getIndLeitura());
155 iettus.setIndExcluirIettus(getIndExcluir(funcao));
156 iettus.setIndEdicaoIettus(getIndEdicao(funcao));
157 iettus.setIndLeituraParecerIettus(getIndLeituraParecer(funcao));
158 iettus.setIndAtivMonitIettus(getIndAtivMonit(funcao));
159 iettus.setIndDesatMonitIettus(getIndDesatMonit(funcao));
160 iettus.setIndBloqPlanIettus(getIndBloqPlan(funcao));
161 iettus.setIndDesblPlanIettus(getIndDesblPlan(funcao));
162 iettus.setIndInfAndamentoIettus(getIndInfAndamento(funcao));
163 iettus.setIndEmitePosIettus(getIndEmitePos(funcao));
164 iettus.setIndProxNivelIettus(getIndProxNivel());
165 }
166 }
167 }
168
169
170
171
172
173
174
175
176
177
178
179 private void incluirPermissoesItensFilho(ItemEstruturaIett item, ItemEstUsutpfuacIettutfa fuac, Session session,String manterProximoNivel) {
180
181 List itensFilhos = getDescendentesItem(item);
182
183 if(itensFilhos != null){
184 Iterator it = itensFilhos.iterator();
185 while(it.hasNext()){
186 ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
187 if(getPermissao(itemFilho, item, fuac.getTipoFuncAcompTpfa()) == null){
188 ItemEstrutUsuarioIettus permissaoItemFilho = incluirPermissaoItem(itemFilho, fuac,manterProximoNivel);
189 permissaoItemFilho.setItemEstruturaIettOrigem(item);
190
191 session.save(permissaoItemFilho);
192 }
193 }
194 }
195 }
196
197
198
199
200
201
202
203
204
205
206
207
208 public ItemEstrutUsuarioIettus getPermissao(ItemEstruturaIett item, ItemEstruturaIett itemOrigem, TipoFuncAcompTpfa funcaoAcomp){
209 Iterator it = item.getItemEstrutUsuarioIettusesByCodIett().iterator();
210 while(it.hasNext()){
211 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
212 if(ieUsuario.getItemEstruturaIett().equals(item) &&
213 ieUsuario.getItemEstruturaIettOrigem().equals(itemOrigem) &&
214 ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO) &&
215 ieUsuario.getTipoFuncAcompTpfa().equals(funcaoAcomp)){
216 return ieUsuario;
217 }
218 }
219 return null;
220 }
221
222
223
224
225
226
227
228
229
230
231
232
233 public List getDescendentesItem(ItemEstruturaIett itemEstrutura) {
234 List retorno = new ArrayList();
235
236 if (itemEstrutura.getItemEstruturaIetts() != null) {
237
238 Iterator it = itemEstrutura.getItemEstruturaIetts().iterator();
239 while (it.hasNext()) {
240 ItemEstruturaIett itemEstruturaFilho = (ItemEstruturaIett) it.next();
241
242 if (!retorno.contains(itemEstruturaFilho))
243 retorno.add(itemEstruturaFilho);
244 retorno.addAll(this.getDescendentesItem(itemEstruturaFilho));
245 }
246 }
247 return retorno;
248 }
249
250
251
252
253
254
255
256
257
258
259
260 protected Set copiarPermissoesItemPai(ItemEstruturaIett item) {
261 Set iettusPai = new HashSet();
262 Set iettusHeranca = new HashSet();
263
264 if (item.getItemEstruturaIett() != null) {
265
266 iettusPai = item.getItemEstruturaIett().getItemEstrutUsuarioIettusesByCodIett();
267
268 Iterator it = iettusPai.iterator();
269
270 while(it.hasNext()) {
271 ItemEstrutUsuarioIettus pai = (ItemEstrutUsuarioIettus) it.next();
272
273 if("S".equals(pai.getIndProxNivelIettus())) {
274 ItemEstrutUsuarioIettus itemEstUsuario = copiarItemEstUsuario(pai);
275
276 itemEstUsuario.setItemEstruturaIett(item);
277
278 iettusHeranca.add(itemEstUsuario);
279 }
280 }
281 }
282
283 return iettusHeranca;
284 }
285
286
287
288
289
290
291
292
293
294
295
296 protected ItemEstrutUsuarioIettus incluirPermissaoItem(ItemEstruturaIett item, ItemEstUsutpfuacIettutfa fuac, String manterProximoNivel) {
297
298 return new ItemEstrutUsuarioIettus(
299 item,
300 item,
301 fuac.getUsuarioUsu(),
302 ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO,
303 fuac.getSisAtributoSatb(),
304 fuac.getTipoFuncAcompTpfa(),
305 getIndLeitura(),
306 getIndEdicao(fuac.getTipoFuncAcompTpfa()),
307 getIndExcluir(fuac.getTipoFuncAcompTpfa()),
308 getIndAtivMonit(fuac.getTipoFuncAcompTpfa()),
309 getIndDesatMonit(fuac.getTipoFuncAcompTpfa()),
310 getIndBloqPlan(fuac.getTipoFuncAcompTpfa()),
311 getIndDesblPlan(fuac.getTipoFuncAcompTpfa()),
312 getIndInfAndamento(fuac.getTipoFuncAcompTpfa()),
313 getIndEmitePos(fuac.getTipoFuncAcompTpfa()),
314 manterProximoNivel,
315 Data.getDataAtual(),
316 getIndLeituraParecer(fuac.getTipoFuncAcompTpfa())
317 );
318 }
319
320
321
322
323
324
325
326
327
328
329
330 protected ItemEstUsutpfuacIettutfa getUsuarioAcompanhamento(ItemEstruturaIett item, TipoFuncAcompTpfa funcao){
331
332 if(item.getItemEstUsutpfuacIettutfas() != null){
333 Iterator it = item.getItemEstUsutpfuacIettutfas().iterator();
334 while(it.hasNext()){
335 ItemEstUsutpfuacIettutfa fuac = (ItemEstUsutpfuacIettutfa) it.next();
336 if(fuac.getItemEstruturaIett().equals(item) && fuac.getTipoFuncAcompTpfa().equals(funcao))
337 return fuac;
338 }
339 }
340 return null;
341
342 }
343
344
345
346
347
348
349
350
351
352
353
354
355 protected ItemEstUsutpfuacIettutfa getUsuarioAcompanhamento(Set lFuac, ItemEstruturaIett item, TipoFuncAcompTpfa funcao){
356
357 if(lFuac != null){
358 Iterator it = lFuac.iterator();
359 while(it.hasNext()){
360 ItemEstUsutpfuacIettutfa fuac = (ItemEstUsutpfuacIettutfa) it.next();
361 if(fuac.getItemEstruturaIett().equals(item) && fuac.getTipoFuncAcompTpfa().equals(funcao))
362 return fuac;
363 }
364 }
365 return null;
366
367 }
368
369
370
371
372
373
374
375
376
377
378
379
380
381 protected void alterarPermissoesItem(ItemEstruturaIett item, ItemEstUsutpfuacIettutfa fuacAnterior, Session session, HttpServletRequest request, HistoricoIettus historico) throws ECARException {
382 try
383 {
384 Iterator it = item.getItemEstrutUsuarioIettusesByCodIettOrigem().iterator();
385
386
387 historico.gerarMaster(HistoricoIettus.alterarPermissoes);
388
389
390 while(it.hasNext()){
391 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
392 ItemEstrutUsuarioIettus old = (ItemEstrutUsuarioIettus)ieUsuario.clone();
393 if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO)
394 &&
395 ( (ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(fuacAnterior.getUsuarioUsu()))
396 || (ieUsuario.getSisAtributoSatb() != null && ieUsuario.getSisAtributoSatb().equals(fuacAnterior.getSisAtributoSatb())) )
397
398 && ieUsuario.getTipoFuncAcompTpfa().equals(fuacAnterior.getTipoFuncAcompTpfa())){
399 ieUsuario.setUsuarioUsu(getUsuarioAcompanhamento(item, fuacAnterior.getTipoFuncAcompTpfa()).getUsuarioUsu());
400 ieUsuario.setSisAtributoSatb(getUsuarioAcompanhamento(item, fuacAnterior.getTipoFuncAcompTpfa()).getSisAtributoSatb());
401
402 historico.gerarHistorico(old);
403
404
405 session.update(ieUsuario);
406 }
407 }
408 }catch (HibernateException e) {
409 throw new ECARException("erro.hibernateException");
410 }
411 }
412
413
414
415
416
417
418
419
420
421
422
423 protected void excluirPermissoesItem(ItemEstruturaIett item, ItemEstUsutpfuacIettutfa fuacAnterior, Session session, HttpServletRequest request, HistoricoIettus historico) throws ECARException {
424 Iterator it = item.getItemEstrutUsuarioIettusesByCodIettOrigem().iterator();
425 while(it.hasNext()){
426 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) it.next();
427 ItemEstrutUsuarioIettus old = (ItemEstrutUsuarioIettus) ieUsuario.clone();
428 if(ieUsuario.getCodTpPermIettus().equals(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO)
429 &&
430 ( (ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(fuacAnterior.getUsuarioUsu()))
431 || (ieUsuario.getSisAtributoSatb() != null && ieUsuario.getSisAtributoSatb().equals(fuacAnterior.getSisAtributoSatb())) )
432
433 && ieUsuario.getTipoFuncAcompTpfa().equals(fuacAnterior.getTipoFuncAcompTpfa())){
434
435
436 historico.gerarHistorico(old);
437
438
439 session.delete(ieUsuario);
440 }
441 }
442 }
443
444
445
446
447
448
449
450
451
452
453 protected ItemEstrutUsuarioIettus copiarItemEstUsuario (ItemEstrutUsuarioIettus itemEstUsuario) {
454 return new ItemEstrutUsuarioIettus(
455 itemEstUsuario.getItemEstruturaIett(),
456 itemEstUsuario.getItemEstruturaIettOrigem(),
457 itemEstUsuario.getUsuarioUsu(),
458 itemEstUsuario.getCodTpPermIettus(),
459 itemEstUsuario.getSisAtributoSatb(),
460 itemEstUsuario.getTipoFuncAcompTpfa(),
461 itemEstUsuario.getIndLeituraIettus(),
462 itemEstUsuario.getIndEdicaoIettus(),
463 itemEstUsuario.getIndExcluirIettus(),
464 itemEstUsuario.getIndAtivMonitIettus(),
465 itemEstUsuario.getIndDesatMonitIettus(),
466 itemEstUsuario.getIndBloqPlanIettus(),
467 itemEstUsuario.getIndDesblPlanIettus(),
468 itemEstUsuario.getIndInfAndamentoIettus(),
469 itemEstUsuario.getIndEmitePosIettus(),
470 itemEstUsuario.getIndProxNivelIettus(),
471 Data.getDataAtual(),
472 itemEstUsuario.getIndLeituraParecerIettus()
473 );
474 }
475
476
477
478
479
480
481
482
483
484
485
486
487 protected ItemEstrutUsuarioIettus atualizarItemEstUsuario (ItemEstrutUsuarioIettus itemEstrutUsuarioIettusOrigem, ItemEstrutUsuarioIettus itemEstrutUsuarioIettusDestino){
488 itemEstrutUsuarioIettusDestino.setIndLeituraIettus( itemEstrutUsuarioIettusOrigem.getIndLeituraIettus() );
489 itemEstrutUsuarioIettusDestino.setIndEdicaoIettus( itemEstrutUsuarioIettusOrigem.getIndEdicaoIettus() );
490 itemEstrutUsuarioIettusDestino.setIndExcluirIettus( itemEstrutUsuarioIettusOrigem.getIndExcluirIettus() );
491 itemEstrutUsuarioIettusDestino.setIndLeituraParecerIettus( itemEstrutUsuarioIettusOrigem.getIndLeituraParecerIettus() );
492 itemEstrutUsuarioIettusDestino.setIndAtivMonitIettus( itemEstrutUsuarioIettusOrigem.getIndAtivMonitIettus() );
493 itemEstrutUsuarioIettusDestino.setIndDesatMonitIettus( itemEstrutUsuarioIettusOrigem.getIndDesatMonitIettus() );
494 itemEstrutUsuarioIettusDestino.setIndBloqPlanIettus( itemEstrutUsuarioIettusOrigem.getIndBloqPlanIettus() );
495 itemEstrutUsuarioIettusDestino.setIndDesblPlanIettus( itemEstrutUsuarioIettusOrigem.getIndDesblPlanIettus() );
496 itemEstrutUsuarioIettusDestino.setIndInfAndamentoIettus( itemEstrutUsuarioIettusOrigem.getIndInfAndamentoIettus() );
497 itemEstrutUsuarioIettusDestino.setIndEmitePosIettus( itemEstrutUsuarioIettusOrigem.getIndEmitePosIettus() );
498 itemEstrutUsuarioIettusDestino.setIndProxNivelIettus( itemEstrutUsuarioIettusOrigem.getIndProxNivelIettus() );
499 itemEstrutUsuarioIettusDestino.setIndLeituraParecerIettus( itemEstrutUsuarioIettusOrigem.getIndLeituraParecerIettus() );
500
501 return itemEstrutUsuarioIettusDestino;
502 }
503
504
505
506
507
508
509
510
511
512
513
514 public void propagarPermissoesItensFilhos(ItemEstrutUsuarioIettus itemEstrutUsuarioIettus, Session session) {
515
516 if("S".equals(itemEstrutUsuarioIettus.getIndProxNivelIettus())) {
517
518 ItemEstruturaIett item = itemEstrutUsuarioIettus.getItemEstruturaIett();
519
520 List itensFilhos = getDescendentesItem(item);
521
522 if(itensFilhos != null){
523 List iettusAux = new ArrayList();
524 Iterator it = itensFilhos.iterator();
525 while(it.hasNext()){
526 ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
527
528 ItemEstrutUsuarioIettus itemEstrutUsuarioIettusFilho = this.copiarItemEstUsuario(itemEstrutUsuarioIettus);
529
530 itemEstrutUsuarioIettusFilho.setItemEstruturaIett(itemFilho);
531 if(!iettusAux.contains(itemEstrutUsuarioIettusFilho)) {
532 session.save(itemEstrutUsuarioIettusFilho);
533 iettusAux.add(itemEstrutUsuarioIettusFilho);
534 }
535 }
536 }
537 }
538 }
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554 public void atualizarPermissoesItensFilhos(ItemEstrutUsuarioIettus itemEstrutUsuarioIettusNovo,
555 String indProxNivelIettusAnterior, Session session, HttpServletRequest request, HistoricoIettus historico) throws HibernateException, ECARException {
556
557 ItemEstruturaIett item = itemEstrutUsuarioIettusNovo.getItemEstruturaIett();
558
559 List itensFilhos = getDescendentesItem(item);
560 List listIettusAtualizados = new ArrayList();
561
562 if(itensFilhos != null){
563 Iterator it = itensFilhos.iterator();
564 while(it.hasNext()){
565 ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
566
567 ItemEstrutUsuarioIettus itemEstrutUsuarioIettusFilho = this.copiarItemEstUsuario(itemEstrutUsuarioIettusNovo);
568
569 itemEstrutUsuarioIettusFilho.setItemEstruturaIett(itemFilho);
570 itemEstrutUsuarioIettusFilho.setIndExclusaoPosHistorico(Boolean.FALSE);
571
572
573 if(("S".equals(indProxNivelIettusAnterior) && "N".equals(itemEstrutUsuarioIettusNovo.getIndProxNivelIettus()))) {
574
575 if(itemFilho.getItemEstrutUsuarioIettusesByCodIett() != null) {
576
577 Iterator itEstrutAnterior = itemFilho.getItemEstrutUsuarioIettusesByCodIett().iterator();
578 while(itEstrutAnterior.hasNext()){
579 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) itEstrutAnterior.next();
580
581 if(ieUsuario.getItemEstruturaIettOrigem().equals(item)) {
582 if(ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(itemEstrutUsuarioIettusNovo.getUsuarioUsu())) {
583
584 ieUsuario.setUsuManutencao(itemEstrutUsuarioIettusNovo.getUsuManutencao());
585
586 historico.gerarHistorico(ieUsuario);
587
588
589 session.delete(ieUsuario);
590 }
591 else if(ieUsuario.getCodTpPermIettus().equals(PERMISSAO_GRUPO)
592 && (ieUsuario.getSisAtributoSatb() != null && itemEstrutUsuarioIettusNovo.getSisAtributoSatb() != null &&
593 ieUsuario.getSisAtributoSatb().getCodSatb().longValue() == itemEstrutUsuarioIettusNovo.getSisAtributoSatb().getCodSatb().longValue())){
594
595 ieUsuario.setUsuManutencao(itemEstrutUsuarioIettusNovo.getUsuManutencao());
596
597 historico.gerarHistorico(ieUsuario);
598
599
600 session.delete(ieUsuario);
601 }
602 }
603 }
604 }
605 }
606 else if("S".equals(itemEstrutUsuarioIettusNovo.getIndProxNivelIettus())) {
607
608 if(itemFilho.getItemEstrutUsuarioIettusesByCodIett() != null) {
609
610 boolean achou = false;
611
612 Iterator itAux = itemFilho.getItemEstrutUsuarioIettusesByCodIett().iterator();
613 while(itAux.hasNext()) {
614 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) itAux.next();
615
616 if(ieUsuario.getItemEstruturaIettOrigem().equals(item)) {
617 if(ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(itemEstrutUsuarioIettusNovo.getUsuarioUsu())) {
618
619 ItemEstrutUsuarioIettus old = (ItemEstrutUsuarioIettus) ieUsuario.clone();
620 old.setUsuManutencao(itemEstrutUsuarioIettusNovo.getUsuManutencao());
621
622 historico.gerarHistorico(old);
623
624
625 achou = true;
626 ieUsuario = this.atualizarItemEstUsuario(itemEstrutUsuarioIettusFilho, ieUsuario);
627
628 session.update(ieUsuario);
629 }
630 else if(ieUsuario.getCodTpPermIettus().equals(PERMISSAO_GRUPO)
631 && (ieUsuario.getSisAtributoSatb() != null && itemEstrutUsuarioIettusNovo.getSisAtributoSatb() != null &&
632 ieUsuario.getSisAtributoSatb().getCodSatb().longValue() == itemEstrutUsuarioIettusNovo.getSisAtributoSatb().getCodSatb().longValue())){
633
634
635 ItemEstrutUsuarioIettus old = (ItemEstrutUsuarioIettus) ieUsuario.clone();
636 old.setUsuManutencao(itemEstrutUsuarioIettusNovo.getUsuManutencao());
637
638 historico.gerarHistorico(old);
639
640
641 achou = true;
642 ieUsuario = this.atualizarItemEstUsuario(itemEstrutUsuarioIettusFilho, ieUsuario);
643 session.update(ieUsuario);
644 }
645 }
646 }
647
648 if(!achou && !listIettusAtualizados.contains(itemEstrutUsuarioIettusNovo)) {
649 listIettusAtualizados.add(itemEstrutUsuarioIettusNovo);
650 this.propagarPermissoesItensFilhos(itemEstrutUsuarioIettusNovo, session);
651 }
652 }
653 else {
654 session.save(itemEstrutUsuarioIettusFilho);
655 }
656 }
657 else {
658 break;
659 }
660 }
661 }
662 }
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677 public void removerPermissoesItensFilhos(ItemEstrutUsuarioIettus itemEstrutUsuario, Session session, HttpServletRequest request) throws HibernateException, ECARException {
678 ItemEstruturaIett item = itemEstrutUsuario.getItemEstruturaIett();
679
680 List itensFilhos = getDescendentesItem(item);
681
682 if(itensFilhos != null){
683 Iterator it = itensFilhos.iterator();
684 while(it.hasNext()){
685 ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
686
687 if(itemFilho.getItemEstrutUsuarioIettusesByCodIett() != null) {
688
689 Iterator itEstrutAnterior = itemFilho.getItemEstrutUsuarioIettusesByCodIett().iterator();
690 while(itEstrutAnterior.hasNext()){
691 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) itEstrutAnterior.next();
692 if(ieUsuario.getItemEstruturaIettOrigem().equals(item)) {
693 if(ieUsuario.getUsuarioUsu() != null && ieUsuario.getUsuarioUsu().equals(itemEstrutUsuario.getUsuarioUsu())) {
694
695 ieUsuario.setUsuManutencao(itemEstrutUsuario.getUsuManutencao());
696
697
698 HistoricoIettus historico = new HistoricoIettus(ieUsuario,
699 HistoricoIettus.excluirPermissoes,
700 session,
701 new ConfiguracaoDao(request),
702 request);
703 historico.gerarHistorico();
704
705
706
707
708 session.delete(ieUsuario);
709 }
710 else if(ieUsuario.getCodTpPermIettus().equals(PERMISSAO_GRUPO)
711 && (ieUsuario.getSisAtributoSatb() != null && itemEstrutUsuario.getSisAtributoSatb() != null &&
712 ieUsuario.getSisAtributoSatb().getCodSatb().longValue() == itemEstrutUsuario.getSisAtributoSatb().getCodSatb().longValue())){
713
714 ieUsuario.setUsuManutencao(itemEstrutUsuario.getUsuManutencao());
715
716
717 HistoricoIettus historico = new HistoricoIettus(ieUsuario,
718 HistoricoIettus.excluirPermissoes,
719 session,
720 new ConfiguracaoDao(request),
721 request);
722 historico.gerarHistorico();
723
724
725
726 session.delete(ieUsuario);
727 }
728 }
729 }
730 }
731 }
732 }
733 }
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748 public boolean verificarInclusaoUsuarioGrupo(ItemEstruturaIett item, ItemEstrutUsuarioIettus iettusParaIncluir ) {
749 boolean permiteInclusao = true;
750
751 if("S".equals(iettusParaIncluir.getIndProxNivelIettus())) {
752
753 Iterator it = item.getItemEstrutUsuarioIettusesByCodIett().iterator();
754
755 while(it.hasNext() && permiteInclusao){
756 ItemEstrutUsuarioIettus iettusGravado = (ItemEstrutUsuarioIettus) it.next();
757
758 if("S".equals(iettusGravado.getIndProxNivelIettus()) && !iettusGravado.getCodIettus().equals(iettusParaIncluir.getCodIettus())) {
759 if(iettusGravado.getCodTpPermIettus().equals(PERMISSAO_USUARIO) && iettusGravado.getUsuarioUsu() != null && iettusGravado.getUsuarioUsu().equals(iettusParaIncluir.getUsuarioUsu())) {
760 permiteInclusao = false;
761 }
762 else if(iettusGravado.getCodTpPermIettus().equals(PERMISSAO_GRUPO)
763 && (iettusGravado.getSisAtributoSatb() != null && iettusParaIncluir.getSisAtributoSatb() != null &&
764 iettusGravado.getSisAtributoSatb().getCodSatb().longValue() == iettusParaIncluir.getSisAtributoSatb().getCodSatb().longValue())) {
765 permiteInclusao = false;
766 }
767 }
768 }
769 }
770
771 return permiteInclusao;
772 }
773
774
775
776
777
778
779
780
781
782
783 protected String getIndEdicao(TipoFuncAcompTpfa funcao) {
784 return SIM.equals(funcao.getIndAlterarItemEstrutura()) ? SIM : NAO;
785 }
786
787
788
789
790
791
792
793
794
795 protected String getIndLeitura() {
796 return SIM;
797 }
798
799
800
801
802
803
804
805
806
807 protected String getIndLeituraParecer(TipoFuncAcompTpfa funcao) {
808 return SIM.equals(funcao.getIndVisualizarParecer()) ? SIM : NAO;
809 }
810
811
812
813
814
815
816
817
818
819
820 protected String getIndExcluir(TipoFuncAcompTpfa funcao) {
821 return SIM.equals(funcao.getIndExcluirItemEstrutura()) ? SIM : NAO;
822 }
823
824
825
826
827
828
829
830
831
832
833 protected String getIndAtivMonit(TipoFuncAcompTpfa funcao) {
834 return SIM.equals(funcao.getIndAtivarMonitoramento()) ? SIM : NAO;
835 }
836
837
838
839
840
841
842
843
844
845
846 protected String getIndDesatMonit(TipoFuncAcompTpfa funcao) {
847 return SIM.equals(funcao.getIndDesativarMonitoramento()) ? SIM : NAO;
848 }
849
850
851
852
853
854
855
856
857
858
859
860 protected String getIndBloqPlan(TipoFuncAcompTpfa funcao) {
861 return SIM.equals(funcao.getIndBloquearPlanejamento()) ? SIM : NAO;
862 }
863
864
865
866
867
868
869
870
871
872
873 protected String getIndDesblPlan(TipoFuncAcompTpfa funcao) {
874 return SIM.equals(funcao.getIndDesbloquearPlanejamento()) ? SIM : NAO;
875 }
876
877
878
879
880
881
882
883
884
885
886 protected String getIndInfAndamento(TipoFuncAcompTpfa funcao) {
887 return SIM.equals(funcao.getIndInformaAndamentoTpfa()) ? SIM : NAO;
888 }
889
890
891
892
893
894
895
896
897
898
899 protected String getIndEmitePos(TipoFuncAcompTpfa funcao) {
900 return SIM.equals(funcao.getIndEmitePosicaoTpfa()) ? SIM : NAO;
901 }
902
903
904
905
906
907
908
909
910
911 protected String getIndProxNivel() {
912 return SIM;
913 }
914
915
916
917
918
919
920
921 public void atualizarPermissaoManterProximoNivel(EstrutTpFuncAcmpEtttfa estrutTpFuncAcmpEtttfa, Session session, HttpServletRequest request) throws ECARException{
922
923
924 ItemEstrutUsuarioDao itemEstrutUsuarioDao = new ItemEstrutUsuarioDao(request);
925 ItemEstruturaIett itemEstruturaIettFiltro = new ItemEstruturaIett();
926 itemEstruturaIettFiltro.setIndAtivoIett("S");
927 itemEstruturaIettFiltro.setEstruturaEtt(estrutTpFuncAcmpEtttfa.getEstruturaEtt());
928
929 List itensEstruturaIetts = itemEstrutUsuarioDao.pesquisar(itemEstruturaIettFiltro, null);
930 Iterator itItensEstruturaIetts = itensEstruturaIetts.iterator();
931 String manterProximoNivel = estrutTpFuncAcmpEtttfa.getIndManterProximoNivelEtttfa();
932 while (itItensEstruturaIetts.hasNext()){
933 ItemEstruturaIett itemEstruturaIett = (ItemEstruturaIett) itItensEstruturaIetts.next();
934 ItemEstrutUsuarioIettus itemEstrutUsuarioIettusFiltro = new ItemEstrutUsuarioIettus();
935 itemEstrutUsuarioIettusFiltro.setItemEstruturaIett(itemEstruturaIett);
936 itemEstrutUsuarioIettusFiltro.setTipoFuncAcompTpfa(estrutTpFuncAcmpEtttfa.getTipoFuncAcompTpfa());
937 itemEstrutUsuarioIettusFiltro.setCodTpPermIettus(ControlePermissao.PERMISSAO_FUNCAO_ACOMPANHAMENTO);
938 itemEstrutUsuarioIettusFiltro.setItemEstruturaIettOrigem(itemEstruturaIett);
939
940 List itensEstrutUsuarioIettus = itemEstrutUsuarioDao.pesquisar(itemEstrutUsuarioIettusFiltro, null);
941 Iterator itIettus = itensEstrutUsuarioIettus.iterator();
942
943 while (itIettus.hasNext()){
944 ItemEstrutUsuarioIettus itemEstrutUsuarioIettus = (ItemEstrutUsuarioIettus) itIettus.next();
945 if(manterProximoNivel != null && manterProximoNivel.equals("S")){
946 this.propagarPermissoesIndProximoNivel(itemEstrutUsuarioIettus, session);
947 }else {
948 this.removerPermissoesIndProximoNivel(itemEstrutUsuarioIettus, session, request);
949 }
950 }
951 }
952 }
953
954
955
956
957
958
959
960
961
962
963
964 public void propagarPermissoesIndProximoNivel(ItemEstrutUsuarioIettus itemEstrutUsuarioIettus, Session session) {
965
966 itemEstrutUsuarioIettus.setIndProxNivelIettus("S");
967 session.update(itemEstrutUsuarioIettus);
968
969 ItemEstruturaIett item = itemEstrutUsuarioIettus.getItemEstruturaIett();
970
971 List itensFilhos = getDescendentesItem(item);
972
973 if(itensFilhos != null){
974 List iettusAux = new ArrayList();
975 Iterator it = itensFilhos.iterator();
976 while(it.hasNext()){
977 ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
978
979 ItemEstrutUsuarioIettus itemEstrutUsuarioIettusFilho = this.copiarItemEstUsuario(itemEstrutUsuarioIettus);
980
981 itemEstrutUsuarioIettusFilho.setItemEstruturaIett(itemFilho);
982 if(!iettusAux.contains(itemEstrutUsuarioIettusFilho)) {
983 session.save(itemEstrutUsuarioIettusFilho);
984 iettusAux.add(itemEstrutUsuarioIettusFilho);
985 }
986 }
987 }
988
989 }
990
991
992
993
994
995
996
997
998
999
1000
1001
1002 public void removerPermissoesIndProximoNivel(ItemEstrutUsuarioIettus itemEstrutUsuarioIettus, Session session, HttpServletRequest request) throws ECARException {
1003
1004 ItemEstrutUsuarioDao itemEstrutUsuarioDao = new ItemEstrutUsuarioDao(request);
1005 List itensFilhos = getDescendentesItem(itemEstrutUsuarioIettus.getItemEstruturaIett());
1006 itemEstrutUsuarioIettus.setIndProxNivelIettus("N");
1007 session.update(itemEstrutUsuarioIettus);
1008
1009 if(itensFilhos != null){
1010 Iterator it = itensFilhos.iterator();
1011 while(it.hasNext()){
1012 ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
1013
1014 ItemEstrutUsuarioIettus itemEstrutUsuarioIettusFiltro = new ItemEstrutUsuarioIettus();
1015 itemEstrutUsuarioIettusFiltro.setItemEstruturaIett(itemFilho);
1016 itemEstrutUsuarioIettusFiltro.setItemEstruturaIettOrigem(itemEstrutUsuarioIettus.getItemEstruturaIett());
1017 itemEstrutUsuarioIettusFiltro.setCodTpPermIettus(PERMISSAO_FUNCAO_ACOMPANHAMENTO);
1018 itemEstrutUsuarioIettusFiltro.setTipoFuncAcompTpfa(itemEstrutUsuarioIettus.getTipoFuncAcompTpfa());
1019
1020 List itensEstrutUsuarioIettus = itemEstrutUsuarioDao.pesquisar(itemEstrutUsuarioIettusFiltro, null);
1021
1022 if(itensEstrutUsuarioIettus != null) {
1023
1024 Iterator itEstrutAnterior = itensEstrutUsuarioIettus.iterator();
1025 while(itEstrutAnterior.hasNext()){
1026 ItemEstrutUsuarioIettus ieUsuario = (ItemEstrutUsuarioIettus) itEstrutAnterior.next();
1027
1028
1029 ieUsuario.setUsuManutencao(itemEstrutUsuarioIettus.getUsuManutencao());
1030
1031
1032 HistoricoIettus historico = new HistoricoIettus(ieUsuario,
1033 HistoricoIettus.excluirPermissoes,
1034 session,
1035 new ConfiguracaoDao(request),
1036 request);
1037 historico.gerarHistorico();
1038
1039
1040
1041
1042 session.delete(ieUsuario);
1043
1044 }
1045 }
1046 }
1047 }
1048 }
1049
1050 }