1
2
3
4 package ecar.dao;
5
6 import java.io.FileWriter;
7 import java.io.IOException;
8 import java.util.ArrayList;
9 import java.util.Collections;
10 import java.util.Comparator;
11 import java.util.Enumeration;
12 import java.util.HashSet;
13 import java.util.Iterator;
14 import java.util.List;
15 import java.util.Set;
16
17 import javax.servlet.http.HttpServletRequest;
18
19 import org.hibernate.HibernateException;
20 import org.hibernate.Query;
21 import org.hibernate.Transaction;
22
23 import comum.database.Dao;
24 import comum.database.SentinelaUtil;
25 import comum.util.Data;
26 import comum.util.Pagina;
27
28 import ecar.exception.ECARException;
29 import ecar.permissao.ValidaPermissao;
30 import ecar.pojo.ConfiguracaoCfg;
31 import ecar.pojo.EntidadeEnt;
32 import ecar.pojo.OrgaoOrg;
33 import ecar.pojo.PaiFilho;
34 import ecar.pojo.SisAtributoSatb;
35 import ecar.pojo.SisGrupoAtributoSga;
36 import ecar.pojo.TipoEnderecoCorrTpec;
37 import ecar.pojo.Uf;
38 import ecar.pojo.UsuarioAtributoUsua;
39 import ecar.pojo.UsuarioUsu;
40 import gov.pr.celepar.sentinela.comunicacao.SentinelaAdmInterface;
41 import gov.pr.celepar.sentinela.comunicacao.SentinelaInterface;
42 import gov.pr.celepar.sentinela.comunicacao.SentinelaParam;
43 import gov.pr.celepar.sentinela.excecao.SentinelaException;
44
45
46
47
48 public class UsuarioDao extends Dao {
49
50 public static String INFORMACAO_NAO_LOCALIZADA_SENTINELA = "Usuário não encontrado";
51 private static String EMAIL_NAO_LOCALIZADO_SENTINELA = "";
52
53
54
55
56
57
58 ValidaPermissao validaPermissao = new ValidaPermissao();
59
60 public UsuarioDao() {
61 super();
62 }
63
64
65
66
67
68 public UsuarioDao(HttpServletRequest request) {
69 super();
70 this.request = request;
71
72
73
74
75 }
76
77
78
79
80
81
82
83
84
85
86 public void setUsuario(HttpServletRequest request, UsuarioUsu usuario, boolean usarParamStr) throws ECARException {
87
88 if (usarParamStr) {
89
90 usuario.setDataNascimentoUsu(Data.parseDate(Pagina.getParamStr(request, "dataNascimentoUsu")));
91 if (!"".equals(Pagina.getParamStr(request, "dataNascimentoUsu")))
92 usuario.setDataNascimentoUsu(Data.parseDate(Pagina.getParamStr(request, "dataNascimentoUsu")));
93 else
94 usuario.setDataNascimentoUsu(null);
95
96 usuario.setResidEnderecoUsu(Pagina.getParamStr(request, "residEnderecoUsu"));
97 usuario.setResidComplementoUsu(Pagina.getParamStr(request, "residComplementoUsu"));
98 usuario.setResidBairroUsu(Pagina.getParamStr(request, "residBairroUsu"));
99 usuario.setResidCidadeUsu(Pagina.getParamStr(request, "residCidadeUsu"));
100 usuario.setResidCepUsu(Pagina.getParamStr(request, "residCepUsu"));
101 usuario.setResidBairroUsu(Pagina.getParamStr(request, "residBairroUsu"));
102 usuario.setResidDddUsu(Pagina.getParamStr(request, "residDddUsu"));
103 usuario.setResidTelefoneUsu(Pagina.getParamStr(request, "residTelefoneUsu"));
104 usuario.setResidRamalUsu(Pagina.getParamStr(request, "residRamalUsu"));
105 usuario.setComercEnderecoUsu(Pagina.getParamStr(request, "comercEnderecoUsu"));
106 usuario.setComercComplementoUsu(Pagina.getParamStr(request, "comercComplementoUsu"));
107 usuario.setComercBairroUsu(Pagina.getParamStr(request, "comercBairroUsu"));
108 usuario.setComercCidadeUsu(Pagina.getParamStr(request, "comercCidadeUsu"));
109 usuario.setComercCepUsu(Pagina.getParamStr(request, "comercCepUsu"));
110 usuario.setComercBairroUsu(Pagina.getParamStr(request, "comercBairroUsu"));
111 usuario.setComercDddUsu(Pagina.getParamStr(request, "comercDddUsu"));
112 usuario.setComercTelefoneUsu(Pagina.getParamStr(request, "comercTelefoneUsu"));
113 usuario.setComercRamalUsu(Pagina.getParamStr(request, "comercRamalUsu"));
114 usuario.setFaxUsu(Pagina.getParamStr(request, "faxUsu"));
115 usuario.setDddFaxUsu(Pagina.getParamStr(request, "dddFaxUsu"));
116
117 usuario.setEmail2Usu(Pagina.getParamStr(request, "email2Usu"));
118 usuario.setIdDominioUsu(Pagina.getParamStr(request, "idDominioUsu"));
119
120
121
122
123
124 usuario.setIndAtivoUsu(Pagina.getParamStr(request, "indAtivoUsu"));
125 }
126 else {
127
128 if (!"".equals(Pagina.getParamStr(request, "dataNascimentoUsu")))
129 usuario.setDataNascimentoUsu(Data.parseDate(Pagina.getParamStr(request, "dataNascimentoUsu")));
130
131 usuario.setResidEnderecoUsu(Pagina.getParam(request, "residEnderecoUsu"));
132 usuario.setResidComplementoUsu(Pagina.getParam(request, "residComplementoUsu"));
133 usuario.setResidBairroUsu(Pagina.getParam(request, "residBairroUsu"));
134 usuario.setResidCidadeUsu(Pagina.getParam(request, "residCidadeUsu"));
135 usuario.setResidCepUsu(Pagina.getParam(request, "residCepUsu"));
136 usuario.setResidBairroUsu(Pagina.getParam(request, "residBairroUsu"));
137 usuario.setResidDddUsu(Pagina.getParam(request, "residDddUsu"));
138 usuario.setResidTelefoneUsu(Pagina.getParam(request, "residTelefoneUsu"));
139 usuario.setResidRamalUsu(Pagina.getParam(request, "residRamalUsu"));
140 usuario.setComercEnderecoUsu(Pagina.getParam(request, "comercEnderecoUsu"));
141 usuario.setComercComplementoUsu(Pagina.getParam(request, "comercComplementoUsu"));
142 usuario.setComercBairroUsu(Pagina.getParam(request, "comercBairroUsu"));
143 usuario.setComercCidadeUsu(Pagina.getParam(request, "comercCidadeUsu"));
144 usuario.setComercCepUsu(Pagina.getParam(request, "comercCepUsu"));
145 usuario.setComercBairroUsu(Pagina.getParam(request, "comercBairroUsu"));
146 usuario.setComercDddUsu(Pagina.getParam(request, "comercDddUsu"));
147 usuario.setComercTelefoneUsu(Pagina.getParam(request, "comercTelefoneUsu"));
148 usuario.setComercRamalUsu(Pagina.getParam(request, "comercRamalUsu"));
149 usuario.setFaxUsu(Pagina.getParam(request, "faxUsu"));
150 usuario.setDddFaxUsu(Pagina.getParam(request, "dddFaxUsu"));
151
152 usuario.setEmail2Usu(Pagina.getParam(request, "email2Usu"));
153 usuario.setIdDominioUsu(Pagina.getParam(request, "idDominioUsu"));
154
155
156
157
158
159 usuario.setIndAtivoUsu(Pagina.getParam(request, "indAtivoUsu"));
160 }
161
162 usuario.setEmail1Usu(usuario.getEmail1UsuSent());
163 usuario.setNomeUsu(usuario.getNomeUsuSent());
164
165
166
167
168 if (Pagina.getParamInt(request, "numOrgaos") > 0)
169 usuario.setOrgaoOrgs(new HashSet());
170 for (int i = 1; i <= Pagina.getParamInt(request, "numOrgaos"); i++) {
171 if ("S".equals(Pagina.getParamStr(request, "adicionaOrgaoOrg" + i))) {
172 if (!"".equals(Pagina.getParamStr(request, "orgaoOrg" + i)))
173 usuario.getOrgaoOrgs().add(((OrgaoOrg) super.buscar(OrgaoOrg.class, Long.valueOf(Pagina.getParamStr(request, "orgaoOrg" + i)))));
174 }
175 }
176
177
178
179
180
181
182
183 if (Pagina.getParamInt(request, "numEntidades") > 0)
184 usuario.setEntidadeEnts(new HashSet());
185 for (int i = 1; i <= Pagina.getParamInt(request, "numEntidades"); i++) {
186 if ("S".equals(Pagina.getParamStr(request, "adicionaEntidadeEnt" + i))) {
187 if (!"".equals(Pagina.getParamStr(request, "entidadeEnt" + i)))
188 usuario.getEntidadeEnts().add(((EntidadeEnt) super.buscar(EntidadeEnt.class, Long.valueOf(Pagina.getParamStr(request, "entidadeEnt" + i)))));
189 }
190 }
191
192
193
194
195 if (!"".equals(Pagina.getParamStr(request, "residUfUsu")))
196 usuario.setUfByResidUfUsu((Uf) super.buscar(Uf.class, Pagina.getParamStr(request, "residUfUsu")));
197 if (!"".equals(Pagina.getParamStr(request, "comercUfUsu")))
198 usuario.setUfByComercUfUsu((Uf) super.buscar(Uf.class, Pagina.getParamStr(request, "comercUfUsu")));
199 if (!"".equals(Pagina.getParamStr(request, "tipoEnderecoCorrTpec")))
200 usuario.setTipoEnderecoCorrTpec((TipoEnderecoCorrTpec) super.buscar(TipoEnderecoCorrTpec.class, Long.valueOf(Pagina.getParamStr(request, "tipoEnderecoCorrTpec"))));
201
202 setAtributosUsuario(request, usuario, false);
203 setClasseAcessoUsuario(request, usuario);
204
205 }
206
207
208
209
210
211
212
213 public void setUsuarioCadastroSite(HttpServletRequest request, UsuarioUsu usuario) throws ECARException {
214
215
216
217
218 if (!"".equals(Pagina.getParamStr(request, "dataNascimentoUsu")))
219 usuario.setDataNascimentoUsu(Data.parseDate(Pagina.getParamStr(request, "dataNascimentoUsu")));
220 else
221 usuario.setDataNascimentoUsu(null);
222
223 usuario.setResidEnderecoUsu(Pagina.getParamStr(request, "residEnderecoUsu"));
224 usuario.setResidComplementoUsu(Pagina.getParamStr(request, "residComplementoUsu"));
225 usuario.setResidBairroUsu(Pagina.getParamStr(request, "residBairroUsu"));
226 usuario.setResidCidadeUsu(Pagina.getParamStr(request, "residCidadeUsu"));
227 usuario.setResidCepUsu(Pagina.getParamStr(request, "residCepUsu"));
228 usuario.setResidBairroUsu(Pagina.getParamStr(request, "residBairroUsu"));
229 usuario.setResidDddUsu(Pagina.getParamStr(request, "residDddUsu"));
230 usuario.setResidTelefoneUsu(Pagina.getParamStr(request, "residTelefoneUsu"));
231 usuario.setResidRamalUsu(Pagina.getParamStr(request, "residRamalUsu"));
232 usuario.setComercEnderecoUsu(Pagina.getParamStr(request, "comercEnderecoUsu"));
233 usuario.setComercComplementoUsu(Pagina.getParamStr(request, "comercComplementoUsu"));
234 usuario.setComercBairroUsu(Pagina.getParamStr(request, "comercBairroUsu"));
235 usuario.setComercCidadeUsu(Pagina.getParamStr(request, "comercCidadeUsu"));
236 usuario.setComercCepUsu(Pagina.getParamStr(request, "comercCepUsu"));
237 usuario.setComercBairroUsu(Pagina.getParamStr(request, "comercBairroUsu"));
238 usuario.setComercDddUsu(Pagina.getParamStr(request, "comercDddUsu"));
239 usuario.setComercTelefoneUsu(Pagina.getParamStr(request, "comercTelefoneUsu"));
240 usuario.setComercRamalUsu(Pagina.getParamStr(request, "comercRamalUsu"));
241 usuario.setFaxUsu(Pagina.getParamStr(request, "faxUsu"));
242 usuario.setDddFaxUsu(Pagina.getParamStr(request, "dddFaxUsu"));
243
244 usuario.setEmail2Usu(Pagina.getParamStr(request, "email2Usu"));
245
246
247
248 if (!"".equals(Pagina.getParamStr(request, "residUfUsu")))
249 usuario.setUfByResidUfUsu((Uf) super.buscar(Uf.class, Pagina.getParamStr(request, "residUfUsu")));
250 if (!"".equals(Pagina.getParamStr(request, "comercUfUsu")))
251 usuario.setUfByComercUfUsu((Uf) super.buscar(Uf.class, Pagina.getParamStr(request, "comercUfUsu")));
252 if (!"".equals(Pagina.getParamStr(request, "tipoEnderecoCorrTpec")))
253 usuario.setTipoEnderecoCorrTpec((TipoEnderecoCorrTpec) super.buscar(TipoEnderecoCorrTpec.class, Long.valueOf(Pagina.getParamStr(request, "tipoEnderecoCorrTpec"))));
254
255
256
257
258 if (Pagina.getParamInt(request, "numOrgaos") > 0)
259 usuario.setOrgaoOrgs(new HashSet());
260 for (int i = 1; i <= Pagina.getParamInt(request, "numOrgaos"); i++) {
261 if ("S".equals(Pagina.getParamStr(request, "adicionaOrgaoOrg" + i))) {
262 if (!"".equals(Pagina.getParamStr(request, "orgaoOrg" + i)))
263 usuario.getOrgaoOrgs().add(((OrgaoOrg) super.buscar(OrgaoOrg.class, Long.valueOf(Pagina.getParamStr(request, "orgaoOrg" + i)))));
264 }
265 }
266
267
268
269
270 setAtributosUsuario(request, usuario, true);
271
272 }
273
274
275
276
277
278
279
280
281 public void setClasseAcessoUsuario(HttpServletRequest request, UsuarioUsu usuario) throws ECARException {
282 String[] classesAcesso = request.getParameterValues("classeAcesso");
283 if (classesAcesso != null) {
284 for (int i = 0; i < classesAcesso.length; i++) {
285 UsuarioAtributoUsua usuarioAtributo = new UsuarioAtributoUsua();
286 usuarioAtributo.setUsuarioUsu(usuario);
287 usuarioAtributo.setSisAtributoSatb((SisAtributoSatb) super.buscar(SisAtributoSatb.class, Long.valueOf(classesAcesso[i])));
288 usuarioAtributo.setDataInclusao(Data.getDataAtual());
289 if (usuario.getUsuarioAtributoUsuas() == null)
290 usuario.setUsuarioAtributoUsuas(new HashSet());
291 usuario.getUsuarioAtributoUsuas().add(usuarioAtributo);
292 }
293
294 }
295 }
296
297
298
299
300
301
302
303
304 public void setAtributosUsuario(HttpServletRequest request, UsuarioUsu usuario, boolean cadastroSite) throws ECARException {
305 usuario.setUsuarioAtributoUsuas(null);
306 List lAtributos;
307 if (cadastroSite)
308 lAtributos = new SisGrupoAtributoDao(request).getGruposAtributosCadastroUsuarioSite();
309 else
310 lAtributos = new SisGrupoAtributoDao(request).getGruposAtributosCadastro("U");
311 Iterator it = lAtributos.iterator();
312 while (it.hasNext()) {
313 SisGrupoAtributoSga grupoAtributo = (SisGrupoAtributoSga) it.next();
314 String tipoExibicao = "";
315 if (grupoAtributo.getSisTipoExibicGrupoCadUsuSteg() != null) {
316 tipoExibicao = grupoAtributo.getSisTipoExibicGrupoCadUsuSteg().getCodSteg().toString();
317 }
318 else {
319 tipoExibicao = grupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().toString();
320 }
321 if (!"".equals(Pagina.getParamStr(request, "a" + grupoAtributo.getCodSga().toString()))) {
322 UsuarioAtributoUsua usuarioAtributo = new UsuarioAtributoUsua();
323 usuarioAtributo.setUsuarioUsu(usuario);
324
325
326
327
328 if (SisTipoExibicGrupoDao.TEXT.equals(tipoExibicao) || SisTipoExibicGrupoDao.VALIDACAO.equals(tipoExibicao) || SisTipoExibicGrupoDao.TEXTAREA.equals(tipoExibicao) || SisTipoExibicGrupoDao.IMAGEM.equals(tipoExibicao)) {
329 if (grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().size() > 0) {
330 usuarioAtributo.setInformacao(Pagina.getParamStr(request, "a" + grupoAtributo.getCodSga().toString()));
331 usuarioAtributo.setSisAtributoSatb((SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().iterator().next());
332 usuarioAtributo.setDataInclusao(Data.getDataAtual());
333 if (usuario.getUsuarioAtributoUsuas() == null)
334 usuario.setUsuarioAtributoUsuas(new HashSet());
335 usuario.getUsuarioAtributoUsuas().add(usuarioAtributo);
336 }
337 }
338 else {
339
340 String[] atributos = request.getParameterValues("a" + grupoAtributo.getCodSga().toString());
341 for (int i = 0; i < atributos.length; i++) {
342
343
344
345
346 usuarioAtributo = new UsuarioAtributoUsua();
347 usuarioAtributo.setUsuarioUsu(usuario);
348 usuarioAtributo.setSisAtributoSatb((SisAtributoSatb) super.buscar(SisAtributoSatb.class, Long.valueOf(atributos[i])));
349 usuarioAtributo.setDataInclusao(Data.getDataAtual());
350 if (usuario.getUsuarioAtributoUsuas() == null)
351 usuario.setUsuarioAtributoUsuas(new HashSet());
352 usuario.getUsuarioAtributoUsuas().add(usuarioAtributo);
353 }
354 }
355 }
356
357
358
359
360
361
362
363 else {
364 if (SisTipoExibicGrupoDao.MULTITEXTO.equals(tipoExibicao)) {
365 Enumeration lAtrib = request.getParameterNames();
366 while (lAtrib.hasMoreElements()) {
367 String atrib = (String) lAtrib.nextElement();
368 if (atrib.lastIndexOf('-') > 0) {
369 String nomeAtrib = atrib.substring(0, atrib.lastIndexOf('-'));
370 String nomeCampo = atrib.substring(atrib.lastIndexOf('-') + 1);
371 if (nomeAtrib.equals("a" + grupoAtributo.getCodSga().toString()) && !"".equals(Pagina.getParamStr(request, atrib))) {
372 UsuarioAtributoUsua usuarioAtributo = new UsuarioAtributoUsua();
373 usuarioAtributo.setUsuarioUsu(usuario);
374 usuarioAtributo.setInformacao(Pagina.getParamStr(request, atrib));
375 usuarioAtributo.setSisAtributoSatb((SisAtributoSatb) super.buscar(SisAtributoSatb.class, Long.valueOf(nomeCampo)));
376 usuarioAtributo.setDataInclusao(Data.getDataAtual());
377 if (usuario.getUsuarioAtributoUsuas() == null)
378 usuario.setUsuarioAtributoUsuas(new HashSet());
379 usuario.getUsuarioAtributoUsuas().add(usuarioAtributo);
380 }
381 }
382 }
383 }
384 }
385 }
386 }
387
388
389
390
391
392
393
394
395 public void salvar(UsuarioUsu usuario) throws ECARException {
396 if (pesquisarDuplos(usuario, new String[] { "idDominioUsu" }, "codUsu").size() > 0)
397 throw new ECARException("usuario.validacao.registroDuplicado");
398 usuario.setDataInclusaoUsu(Data.getDataAtual());
399 List filhos = new ArrayList();
400 if (usuario.getUsuarioAtributoUsuas() != null)
401 filhos.addAll(usuario.getUsuarioAtributoUsuas());
402 super.salvar(usuario, filhos);
403 }
404
405
406
407
408
409
410 public void alterar(UsuarioUsu usuario, HttpServletRequest request) throws ECARException {
411 Transaction tx = null;
412
413 try {
414 ArrayList objetos = new ArrayList();
415 super.inicializarLogBean();
416
417 tx = session.beginTransaction();
418
419
420 if (usuario.getUsuarioAtributoUsuas() != null) {
421 Iterator itAtb = usuario.getUsuarioAtributoUsuas().iterator();
422 while (itAtb.hasNext()) {
423 UsuarioAtributoUsua usuAtrib = (UsuarioAtributoUsua) itAtb.next();
424 session.delete(usuAtrib);
425 objetos.add(usuAtrib);
426 }
427 }
428 usuario.setUsuarioAtributoUsuas(null);
429
430 this.setUsuario(request, usuario, false);
431
432 usuario.setDataUltAlteracaoUsu(Data.getDataAtual());
433
434 List filhos = new ArrayList();
435 if (usuario.getUsuarioAtributoUsuas() != null)
436 filhos.addAll(usuario.getUsuarioAtributoUsuas());
437
438 session.update(usuario);
439 objetos.add(usuario);
440
441 Iterator it = filhos.iterator();
442
443 while (it.hasNext()) {
444 PaiFilho object = (PaiFilho) it.next();
445 object.atribuirPKPai();
446
447 session.save(object);
448 objetos.add(object);
449 }
450
451 tx.commit();
452
453 if (super.logBean != null) {
454 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
455 super.logBean.setOperacao("INC_ALT_EXC");
456 Iterator itObj = objetos.iterator();
457
458 while (itObj.hasNext()) {
459 super.logBean.setObj(itObj.next());
460 super.loggerAuditoria.info(logBean.toString());
461 }
462 }
463
464 } catch (HibernateException e) {
465 if (tx != null)
466 try {
467 tx.rollback();
468 } catch (HibernateException r) {
469 this.logger.error(r);
470 throw new ECARException("erro.hibernateException");
471 }
472 this.logger.error(e);
473 throw new ECARException("erro.hibernateException");
474 } catch (ECARException e) {
475 this.logger.error(e);
476 if (tx != null)
477 try {
478 tx.rollback();
479 } catch (HibernateException r) {
480 this.logger.error(r);
481 throw new ECARException("erro.hibernateException");
482 }
483 throw e;
484 }
485 }
486
487
488
489
490
491
492 public void alterarCadastroSite(UsuarioUsu usuario, HttpServletRequest request) throws ECARException {
493 Transaction tx = null;
494
495 try {
496 ArrayList objetos = new ArrayList();
497 super.inicializarLogBean();
498
499 tx = session.beginTransaction();
500
501 SisGrupoAtributoSga grupoClasseAcesso = new ConfiguracaoDao(request).getConfiguracao().getSisGrupoAtributoSgaByCodSgaGrAtrClAcesso();
502
503
504
505
506
507 if (usuario.getUsuarioAtributoUsuas() != null) {
508 Iterator itAtb = usuario.getUsuarioAtributoUsuas().iterator();
509 while (itAtb.hasNext()) {
510 UsuarioAtributoUsua usuAtrib = (UsuarioAtributoUsua) itAtb.next();
511 SisGrupoAtributoSga grupoAtributo = usuAtrib.getSisAtributoSatb().getSisGrupoAtributoSga();
512 if ((!grupoAtributo.equals(grupoClasseAcesso)) && (grupoAtributo != null && "S".equals(grupoAtributo.getIndCadSiteSga()))) {
513 session.delete(usuAtrib);
514 objetos.add(usuAtrib);
515 itAtb.remove();
516 }
517 }
518 }
519 usuario.setUsuarioAtributoUsuas(null);
520
521 this.setUsuarioCadastroSite(request, usuario);
522
523 usuario.setDataUltAlteracaoUsu(Data.getDataAtual());
524
525 List filhos = new ArrayList();
526 if (usuario.getUsuarioAtributoUsuas() != null)
527 filhos.addAll(usuario.getUsuarioAtributoUsuas());
528
529 session.update(usuario);
530 objetos.add(usuario);
531
532 Iterator it = filhos.iterator();
533
534 while (it.hasNext()) {
535 PaiFilho object = (PaiFilho) it.next();
536 object.atribuirPKPai();
537
538 session.save(object);
539 objetos.add(object);
540 }
541
542 tx.commit();
543
544 if (super.logBean != null) {
545 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
546 super.logBean.setOperacao("INC_ALT_EXC");
547 Iterator itObj = objetos.iterator();
548
549 while (itObj.hasNext()) {
550 super.logBean.setObj(itObj.next());
551 super.loggerAuditoria.info(logBean.toString());
552 }
553 }
554
555 } catch (HibernateException e) {
556 if (tx != null)
557 try {
558 tx.rollback();
559 } catch (HibernateException r) {
560 this.logger.error(r);
561 throw new ECARException("erro.hibernateException");
562 }
563 this.logger.error(e);
564 throw new ECARException("erro.hibernateException");
565 } catch (ECARException e) {
566 this.logger.error(e);
567 if (tx != null)
568 try {
569 tx.rollback();
570 } catch (HibernateException r) {
571 this.logger.error(r);
572 throw new ECARException("erro.hibernateException");
573 }
574 throw e;
575 }
576 }
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591 public void excluir(UsuarioUsu usuario) throws ECARException {
592 try {
593 boolean excluir = true;
594 if (contar(usuario.getAcompReferenciaArefsByCodUsuIncAref()) > 0) {
595 excluir = false;
596 throw new ECARException("usuario.exclusao.erro.acompReferenciaArefsByCodUsuIncAref");
597 }
598 if (contar(usuario.getAcompReferenciaArefsByCodUsuUltManutAref()) > 0) {
599 excluir = false;
600 throw new ECARException("usuario.exclusao.erro.acompReferenciaArefsByCodUsuUltManutAref");
601 }
602 if (contar(usuario.getAcompRelatorioArelsByUsuarioUsu()) > 0) {
603 excluir = false;
604 throw new ECARException("usuario.exclusao.erro.acompRelatorioArels");
605 }
606 if (contar(usuario.getAcompRelatorioArelsByUsuarioUsuUltimaManutencao()) > 0) {
607 excluir = false;
608 throw new ECARException("usuario.exclusao.erro.acompRelatorioArels");
609 }
610 if (contar(usuario.getAgendaAges()) > 0) {
611 excluir = false;
612 throw new ECARException("usuario.exclusao.erro.agendaAges");
613 }
614 if (contar(usuario.getApontamentoApts()) > 0) {
615 excluir = false;
616 throw new ECARException("usuario.exclusao.erro.apontamentoApts");
617 }
618 if (contar(usuario.getEfItemEstRealizadoEfiers()) > 0) {
619 excluir = false;
620 throw new ECARException("usuario.exclusao.erro.efItemEstRealizadoEfiers");
621 }
622 if (contar(usuario.getEstruturaEtts()) > 0) {
623 excluir = false;
624 throw new ECARException("usuario.exclusao.erro.estruturaEtts");
625 }
626 if (contar(usuario.getItemEstrutMarcadorIettms()) > 0) {
627 excluir = false;
628 throw new ECARException("usuario.exclusao.erro.itemEstrutMarcadorIettms");
629 }
630 if (contar(usuario.getItemEstrutUploadIettups()) > 0) {
631 excluir = false;
632 throw new ECARException("usuario.exclusao.erro.itemEstrutUploadIettups");
633 }
634 if (contar(usuario.getItemEstruturaIettsByCodUsuIncIett()) > 0) {
635 excluir = false;
636 throw new ECARException("usuario.exclusao.erro.itemEstruturaIettsByCodUsuIncIett");
637 }
638 if (contar(usuario.getItemEstruturaIettsByCodUsuUltManutIett()) > 0) {
639 excluir = false;
640 throw new ECARException("usuario.exclusao.erro.itemEstruturaIettsByCodUsuUltManutIett");
641 }
642 if (contar(usuario.getItemEstrutUsuarioIettuses()) > 0) {
643 excluir = false;
644 throw new ECARException("usuario.exclusao.erro.itemEstrutUsuarioIettuses");
645 }
646 if (contar(usuario.getItemEstUsutpfuacIettutfas()) > 0) {
647 excluir = false;
648 throw new ECARException("usuario.exclusao.erro.itemEstUsutpfuacIettutfas");
649 }
650 if (contar(usuario.getLogs()) > 0) {
651 excluir = false;
652 throw new ECARException("usuario.exclusao.erro.logs");
653 }
654 if (contar(usuario.getRegControleAcessoRcas()) > 0) {
655 excluir = false;
656 throw new ECARException("usuario.exclusao.erro.regControleAcessoRcas");
657 }
658 if (contar(usuario.getSegmentoCategoriaSgtcs()) > 0) {
659 excluir = false;
660 throw new ECARException("usuario.exclusao.erro.segmentoCategoriaSgtcs");
661 }
662 if (contar(usuario.getSegmentoItemSgtis()) > 0) {
663 excluir = false;
664 throw new ECARException("usuario.exclusao.erro.segmentoItemSgtis");
665 }
666 if (contar(usuario.getSegmentoSgts()) > 0) {
667 excluir = false;
668 throw new ECARException("usuario.exclusao.erro.segmentoSgts");
669 }
670 if (contar(usuario.getHistoricoIettusHs()) > 0) {
671 excluir = false;
672 throw new ECARException("usuario.exclusao.erro.historicoIettusHs");
673 }
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688 if (contar(usuario.getRegDemandaRegdsByCodUsuInclusaoRegd()) > 0) {
689 excluir = false;
690 throw new ECARException("usuario.exclusao.erro.regDemandaRegdsByCodUsuInclusaoRegd");
691 }
692 if (excluir) {
693
694 List objs = new ArrayList();
695 if (usuario.getUsuarioAtributoUsuas() != null) {
696 Iterator itAtb = usuario.getUsuarioAtributoUsuas().iterator();
697 while (itAtb.hasNext()) {
698 UsuarioAtributoUsua usuAtrib = (UsuarioAtributoUsua) itAtb.next();
699 objs.add(usuAtrib);
700 }
701 }
702 usuario.setUsuarioAtributoUsuas(null);
703
704 objs.add(usuario);
705 super.excluir(objs);
706 }
707 } catch (ECARException e) {
708 this.logger.error(e);
709 throw e;
710 }
711 }
712
713
714
715
716
717
718
719
720
721 public List getAtributosUsuario(UsuarioUsu usuario) throws ECARException {
722 List retorno = new ArrayList();
723 Set result = usuario.getUsuarioAtributoUsuas();
724 if (result != null) {
725 if (result.size() > 0) {
726 Iterator it = result.iterator();
727 while (it.hasNext()) {
728 retorno.add((UsuarioAtributoUsua) it.next());
729 }
730
731 }
732 }
733 return retorno;
734 }
735
736
737
738
739
740
741
742
743
744
745 public List getAtributosUsuarioByGrupo(UsuarioUsu usuario, SisGrupoAtributoSga grupo) throws ECARException {
746 List retorno = new ArrayList();
747 Set result = usuario.getUsuarioAtributoUsuas();
748 if (result != null) {
749 if (result.size() > 0) {
750 Iterator it = result.iterator();
751 while (it.hasNext()) {
752 UsuarioAtributoUsua usuarioAtributo = (UsuarioAtributoUsua) it.next();
753 if (usuarioAtributo.getSisAtributoSatb().getSisGrupoAtributoSga().equals(grupo))
754 retorno.add(usuarioAtributo);
755 }
756 }
757 }
758 return retorno;
759 }
760
761
762
763
764
765
766
767
768
769 public List getUsuariosBySisAtributoSatb(SisAtributoSatb sisAtributoSatb) throws ECARException {
770 List retorno = new ArrayList();
771
772 Set result = sisAtributoSatb.getUsuarioAtributoUsuas();
773 if (result != null) {
774 Iterator it = result.iterator();
775 while (it.hasNext()) {
776 UsuarioAtributoUsua usuarioAtributo = (UsuarioAtributoUsua) it.next();
777 retorno.add(usuarioAtributo.getUsuarioUsu());
778
779 }
780 }
781 return retorno;
782 }
783
784
785
786
787
788
789
790 public List getClassesAcessoUsuarioById(UsuarioUsu usuario) throws ECARException {
791
792 List retorno = new ArrayList();
793
794 Set classesAcesso = getClassesAcessoUsuario(usuario);
795
796 if (classesAcesso != null) {
797 Iterator it = classesAcesso.iterator();
798 while (it.hasNext()) {
799 retorno.add(((SisAtributoSatb) it.next()).getCodSatb());
800 }
801 }
802
803 return retorno;
804
805 }
806
807
808
809
810
811
812
813
814 public Set getClassesAcessoUsuario(UsuarioUsu usuario) throws ECARException {
815 Set lClasses = new HashSet();
816 if (usuario.getUsuarioAtributoUsuas() != null) {
817 SisGrupoAtributoSga grupoAtributosClasseAcesso = new ConfiguracaoDao(request).getConfiguracao().getSisGrupoAtributoSgaByCodSgaGrAtrClAcesso();
818
819 Set lAtributosClasseAcesso = grupoAtributosClasseAcesso.getSisAtributoSatbs();
820 Iterator itAtributos = usuario.getUsuarioAtributoUsuas().iterator();
821 while (itAtributos.hasNext())
822 lClasses.add(((UsuarioAtributoUsua) itAtributos.next()).getSisAtributoSatb());
823 if (usuario.getUsuarioAtributoUsuas() != null) {
824 Iterator it = lClasses.iterator();
825 while (it.hasNext()) {
826 SisAtributoSatb atributo = (SisAtributoSatb) it.next();
827 if (!lAtributosClasseAcesso.contains(atributo))
828 it.remove();
829 }
830 }
831 }
832
833 return lClasses;
834 }
835
836
837
838
839
840
841
842
843 public UsuarioUsu getUsuarioByIdDominio(String idDominioUsu) throws ECARException {
844 UsuarioUsu usuario;
845
846 try {
847 Query query = this.session.createQuery("select u from UsuarioUsu u where u.idDominioUsu = :idDominioUsu");
848
849 query.setString("idDominioUsu", idDominioUsu);
850
851 List lista = query.list();
852
853 if (lista.size() > 0) {
854 usuario = (UsuarioUsu) lista.get(0);
855
856
857
858
859
860
861
862
863 }
864 else
865 usuario = new UsuarioUsu();
866 } catch (HibernateException e) {
867 this.logger.error(e);
868 throw new ECARException("erro.hibernateException");
869 }
870
871 return usuario;
872 }
873
874
875
876
877
878
879 public List getListaIdDominio() throws ECARException {
880 List lista;
881 try {
882 lista = this.session.createQuery("select u.idDominioUsu from UsuarioUsu u").list();
883 return lista;
884 } catch (HibernateException e) {
885 this.logger.error(e);
886 throw new ECARException("erro.hibernateException");
887 }
888 }
889
890
891
892
893
894
895
896
897
898
899
900
901 public List pesquisar(UsuarioUsu usuario, String nome, String login, String cpf, String eMail) throws ECARException {
902
903
904 List<UsuarioAtributoUsua> listClassesAcessoFiltro = new ArrayList<UsuarioAtributoUsua>();
905 if (usuario.getUsuarioAtributoUsuas() != null && usuario.getUsuarioAtributoUsuas().size() > 0) {
906
907 for (Iterator itAtr = usuario.getUsuarioAtributoUsuas().iterator(); itAtr.hasNext();) {
908 UsuarioAtributoUsua usuAtr = (UsuarioAtributoUsua) itAtr.next();
909 listClassesAcessoFiltro.add(usuAtr);
910 }
911 }
912
913 List listaOrgaos = null;
914 if (usuario.getOrgaoOrgs() != null) {
915 listaOrgaos = new ArrayList(usuario.getOrgaoOrgs());
916 usuario.setOrgaoOrgs(null);
917 }
918
919 List pesquisa = super.pesquisar(usuario, new String[] { "codUsu", "asc" });
920
921 for (Iterator it = pesquisa.iterator(); it.hasNext();) {
922 UsuarioUsu usu = (UsuarioUsu) it.next();
923
924
925 boolean pesquisaOrgao = false;
926 boolean achouOrgao = false;
927
928
929 if (listaOrgaos != null && !listaOrgaos.isEmpty()) {
930 pesquisaOrgao = true;
931
932 if (usu.getOrgaoOrgs() != null && !usu.getOrgaoOrgs().isEmpty()) {
933
934 for (Iterator itOrgaos = usu.getOrgaoOrgs().iterator(); itOrgaos.hasNext();) {
935
936 OrgaoOrg aux = (OrgaoOrg) itOrgaos.next();
937
938 if (listaOrgaos.contains(aux)) {
939 achouOrgao = true;
940 continue;
941 }
942 }
943 }
944 }
945
946
947 if (pesquisaOrgao && !achouOrgao) {
948 it.remove();
949 continue;
950 }
951
952
953
954 boolean ignorar = false;
955 List<UsuarioAtributoUsua> listVerificacoes = new ArrayList<UsuarioAtributoUsua>();
956
957 if (listClassesAcessoFiltro.size() > 0) {
958 if (usu.getUsuarioAtributoUsuas() != null && usu.getUsuarioAtributoUsuas().size() > 0) {
959
960 for (Iterator itAtr = usu.getUsuarioAtributoUsuas().iterator(); itAtr.hasNext();) {
961 UsuarioAtributoUsua usuAtr = (UsuarioAtributoUsua) itAtr.next();
962 listVerificacoes.add(usuAtr);
963 }
964
965 List<String> listIgnorar = new ArrayList<String>();
966 String ignorarItem = "";
967 for (Iterator itClassesTela = listClassesAcessoFiltro.iterator(); itClassesTela.hasNext();) {
968 UsuarioAtributoUsua atributosTela = (UsuarioAtributoUsua) itClassesTela.next();
969
970 ignorarItem = "SIM";
971
972 for (Iterator itVerificacoes = listVerificacoes.iterator(); itVerificacoes.hasNext();) {
973 UsuarioAtributoUsua atributosUsuario = (UsuarioAtributoUsua) itVerificacoes.next();
974
975 SisGrupoAtributoSga tipo = (SisGrupoAtributoSga) atributosTela.getSisAtributoSatb().getSisGrupoAtributoSga();
976 if (SisTipoExibicGrupoDao.TEXT.equals(tipo.getSisTipoExibicGrupoSteg().getCodSteg().toString())) {
977 if (atributosUsuario.getInformacao() != null && atributosUsuario.getInformacao().length() > 0) {
978 if (atributosUsuario.getInformacao().indexOf(atributosTela.getInformacao()) > -1) {
979 ignorarItem = "NAO";
980 break;
981 }
982 }
983 }
984 else {
985 if (atributosUsuario.getSisAtributoSatb().getCodSatb().floatValue() == atributosTela.getSisAtributoSatb().getCodSatb().floatValue()) {
986 ignorarItem = "NAO";
987 break;
988 }
989 }
990 }
991
992 listIgnorar.add(ignorarItem);
993 }
994
995 if (listIgnorar.contains("SIM")) {
996 ignorar = true;
997 }
998 else {
999 ignorar = false;
1000 }
1001 }
1002 else {
1003 ignorar = true;
1004 }
1005 }
1006 if (!ignorar) {
1007 boolean retirarCollection = false;
1008 if (nome != null && !"".equals(nome.trim())) {
1009 if (usu.getNomeUsuSent().toUpperCase().lastIndexOf(nome.toUpperCase()) == -1)
1010 retirarCollection = true;
1011 }
1012 if (login != null && !"".equals(login.trim())) {
1013 if (usu.getIdUsuarioUsu().toUpperCase().lastIndexOf(login.toUpperCase()) == -1)
1014 retirarCollection = true;
1015 }
1016 if (cpf != null && !"".equals(cpf.trim())) {
1017 if (!usu.getCnpjCpfUsu().equals(cpf))
1018 retirarCollection = true;
1019 }
1020 if (eMail != null && !"".equals(eMail.trim())) {
1021 if (!usu.getEmail1UsuSent().toUpperCase().equals(eMail.toUpperCase()))
1022 retirarCollection = true;
1023 }
1024
1025 if (!retirarCollection) {
1026 usu.getUsuarioAtributoUsuas().size();
1027 }
1028 else {
1029 it.remove();
1030 }
1031 }
1032 else {
1033 it.remove();
1034 }
1035 }
1036
1037 Collections.sort(pesquisa, new Comparator() {
1038 public int compare(Object o1, Object o2) {
1039 return ((UsuarioUsu) o1).getNomeUsuSent().compareToIgnoreCase(((UsuarioUsu) o2).getNomeUsuSent());
1040 }
1041 });
1042
1043 return pesquisa;
1044 }
1045
1046
1047
1048
1049
1050
1051
1052 public List getNiveisPlanejamentoUsuario(UsuarioUsu usuario) throws ECARException {
1053 try {
1054
1055 SisGrupoAtributoSga grupoNivelPlanejamento = new ConfiguracaoDao(request).getConfiguracao().getSisGrupoAtributoSgaByCodSgaGrAtrNvPlan();
1056
1057 String str = "select usuarioAtributo from UsuarioAtributoUsua " + "usuarioAtributo where usuarioAtributo.sisAtributoSatb.sisGrupoAtributoSga.codSga = ? ";
1058
1059 boolean ignorarPermissoes = this.validaPermissao.getIgnorarPermissoes();
1060 if (!ignorarPermissoes) {
1061 str += "and usuarioAtributo.usuarioUsu.codUsu = ?";
1062 }
1063
1064 Query q = this.getSession().createQuery(str);
1065
1066 q.setLong(0, grupoNivelPlanejamento.getCodSga().longValue());
1067
1068 if (!ignorarPermissoes) {
1069 q.setLong(1, usuario.getCodUsu().longValue());
1070 }
1071
1072 return q.list();
1073
1074 } catch (HibernateException e) {
1075 this.logger.error(e);
1076 throw new ECARException(e);
1077 }
1078 }
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091 public SisAtributoSatb getPaginaInicialByUsuarioAndCodSgaPgIni(UsuarioUsu usuario, SisGrupoAtributoSga paginaInicialSga) throws ECARException {
1092 try {
1093 SisAtributoSatb sisAtributo = new SisAtributoSatb();
1094 sisAtributo.setSisGrupoAtributoSga(paginaInicialSga);
1095
1096 List lista = this.pesquisar(sisAtributo, new String[] { "descricaoSatb", "asc" });
1097 List listaCodSga = new ArrayList();
1098 Iterator it = lista.iterator();
1099 while (it.hasNext()) {
1100 SisAtributoSatb satb = (SisAtributoSatb) it.next();
1101 listaCodSga.add(satb.getCodSatb());
1102 }
1103
1104 StringBuilder select = new StringBuilder("select usuarioAtributo from UsuarioAtributoUsua usuarioAtributo").append(" where usuarioAtributo.sisAtributoSatb.sisGrupoAtributoSga.codSga in (:listaSga)").append(" and usuarioAtributo.usuarioUsu.codUsu = :usuario");
1105
1106 Query q = this.getSession().createQuery(select.toString());
1107 q.setParameterList("listaSga", listaCodSga);
1108 q.setLong("usuario", usuario.getCodUsu().longValue());
1109
1110 List listaPgIni = q.list();
1111
1112 if (listaPgIni != null && listaPgIni.size() > 0)
1113 return ((UsuarioAtributoUsua) listaPgIni.iterator().next()).getSisAtributoSatb();
1114
1115 return null;
1116 } catch (HibernateException e) {
1117 this.logger.error(e);
1118 throw new ECARException("erro.hibernateException");
1119 }
1120 }
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142 public String getNomeUsuarioSentinela(long codUsuarioSentinela) {
1143 SentinelaInterface s = SentinelaUtil.getSentinelaInterface();
1144 if (s != null) {
1145 SentinelaParam usuario = s.getUsuarioById(codUsuarioSentinela);
1146 if (usuario != null) {
1147 return usuario.getNome();
1148 }
1149
1150
1151
1152
1153
1154
1155 }
1156 return INFORMACAO_NAO_LOCALIZADA_SENTINELA;
1157 }
1158
1159
1160
1161
1162
1163
1164 public String getLoginUsuarioSentinela(long codUsuarioSentinela) {
1165 SentinelaInterface s = SentinelaUtil.getSentinelaInterface();
1166
1167 if (s != null) {
1168 SentinelaParam usuario = s.getUsuarioById(codUsuarioSentinela);
1169 if (usuario != null) {
1170 return usuario.getParamAux()[0];
1171 }
1172
1173
1174
1175
1176
1177
1178 }
1179
1180 return INFORMACAO_NAO_LOCALIZADA_SENTINELA;
1181 }
1182
1183
1184
1185
1186
1187
1188 public String getCpfUsuarioSentinela(long codUsuarioSentinela) {
1189 SentinelaInterface s = SentinelaUtil.getSentinelaInterface();
1190
1191 if (s != null) {
1192 SentinelaParam usuario = s.getUsuarioById(codUsuarioSentinela);
1193 if (usuario != null) {
1194 return usuario.getParamAux()[1];
1195 }
1196
1197
1198
1199
1200
1201
1202 }
1203
1204 return INFORMACAO_NAO_LOCALIZADA_SENTINELA;
1205 }
1206
1207
1208
1209
1210
1211
1212 public String getEmailUsuarioSentinela(long codUsuarioSentinela) {
1213 SentinelaInterface s = SentinelaUtil.getSentinelaInterface();
1214
1215 if (s != null) {
1216 SentinelaParam usuario = s.getUsuarioById(codUsuarioSentinela);
1217 if (usuario != null) {
1218 return usuario.getParamAux()[2];
1219 }
1220
1221
1222
1223
1224
1225
1226 }
1227
1228 return EMAIL_NAO_LOCALIZADO_SENTINELA;
1229 }
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239 public List pesquisarUsuarioSentinela(String nome, String tipoComp) throws ECARException {
1240 SentinelaInterface s = SentinelaUtil.getSentinelaInterface();
1241
1242 List retorno = new ArrayList();
1243
1244 if (s != null) {
1245 SentinelaParam[] usuarios = s.getUsuariosSistema();
1246
1247 List ids = getListaIdDominio();
1248
1249 if (usuarios != null) {
1250 for (int i = 0; i < usuarios.length; i++) {
1251 UsuarioUsu u = new UsuarioUsu();
1252
1253 String[] param = usuarios[i].getParamAux();
1254
1255 if (!ids.contains(Long.valueOf(usuarios[i].getCodigo()).toString())) {
1256 u.setCodUsu(Long.valueOf(usuarios[i].getCodigo()));
1257 u.setNomeUsu(usuarios[i].getNome());
1258
1259 if (param != null) {
1260 u.setIdUsuarioUsu(param[0]);
1261 u.setCnpjCpfUsu(param[1]);
1262 u.setEmail1Usu(param[2]);
1263 }
1264
1265 if ("N".equals(tipoComp)) {
1266 if (u.getNomeUsuSent().toLowerCase().lastIndexOf(nome.toLowerCase()) >= 0)
1267 retorno.add(u);
1268 }
1269 if ("L".equals(tipoComp)) {
1270 if (u.getIdUsuarioUsu().toLowerCase().lastIndexOf(nome.toLowerCase()) >= 0)
1271 retorno.add(u);
1272 }
1273
1274 }
1275 }
1276 }
1277 }
1278 return retorno;
1279 }
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313 public String geraListaTelefonica(StringBuffer html, String status) throws ECARException, IOException {
1314 ConfiguracaoDao configDao = new ConfiguracaoDao(request);
1315 ConfiguracaoCfg config = configDao.getConfiguracao();
1316
1317 String path = config.getRaizUpload() + "/listaTelefonica.txt";
1318 String separador = config.getSeparadorArqTXT();
1319 String separadorMultivalor = config.getSeparadorCampoMultivalor();
1320
1321 FileWriter csvFile = new FileWriter(path);
1322
1323
1324
1325 UsuarioDao usuDao = new UsuarioDao(request);
1326 List usuarios = new ArrayList();
1327
1328 if ("ativo".equals(status)) {
1329
1330 status = "S";
1331 usuarios = selecionaPorIndAtivo(status);
1332
1333 }
1334 else if ("inativo".equals(status)) {
1335
1336 status = "N";
1337 usuarios = selecionaPorIndAtivo(status);
1338
1339 }
1340 else if ("todos".equals(status)) {
1341
1342 usuarios = usuDao.pesquisar(new UsuarioUsu(), "", "", "", "");
1343 }
1344
1345 int qtdeUsu = usuarios.size();
1346 Iterator itUsu = usuarios.iterator();
1347
1348
1349
1350
1351
1352
1353
1354
1355 int linhas = qtdeUsu * 12;
1356 if (linhas < 1) {
1357 html.append("<table align=\"center\">");
1358 html.append("\n\t<tr class=\"linha_subtitulo_estrutura\" bgcolor=\"#EAEEF4\">");
1359
1360 String checked = "";
1361 if ("S".equals(status))
1362 checked = "checked";
1363 html.append("\n\t<tr>" + "<td></td>" + "<td></td>" + "<td class=\"label\">Situação Cadastral:</td>" + "<td align=\"left\" >" + "<input type=\"radio\" class=\"form_check_radio\" name=\"indAtivo\" id=\"indAtivo\" " + checked + " onclick=\"filtraPorIndAtivo(this.value)\" value=\"ativo\"> Ativos" + "</td>" + "</tr>");
1364 checked = "";
1365
1366 if ("N".equals(status))
1367 checked = "checked";
1368 html.append("<tr>" + "<td></td>" + "<td></td>" + "<td></td>" + "<td align=\"left\" >" + "<input type=\"radio\" class=\"form_check_radio\" name=\"indAtivo\" id=\"indAtivo\" " + checked + " onclick=\"filtraPorIndAtivo(this.value)\" value=\"inativo\"> Inativos" + "</td>" + "</tr>");
1369
1370 checked = "";
1371 if ("todos".equals(status))
1372 checked = "checked";
1373 html.append("<tr>" + "<td></td>" + "<td></td>" + "<td></td>" + "<td align=\"left\" >" + "<input type=\"radio\" class=\"form_check_radio\" name=\"indAtivo\" id=\"indAtivo\" " + checked + " onclick=\"filtraPorIndAtivo(this.value)\" value=\"todos\"> Todos" + "</td>" + "</tr>" + "<tr>" + "</tr>");
1374 html.append("<br>");
1375 html.append("<tr>" + "<td colspan=\"4\" align=\"center\" >" + "<b>Não existem usuários inativos</b>" + "</td>" + "</tr>" + "<tr>" + "</tr>");
1376 html.append("</table>");
1377 return path;
1378 }
1379
1380 html.append("<table cellspacing=0>");
1381 html.append("\n\t<tr class=\"linha_subtitulo_estrutura\" bgcolor=\"#EAEEF4\">");
1382
1383 String checked = "";
1384 if ("S".equals(status))
1385 checked = "checked";
1386 html.append("\n\t<tr>" + "<td class=\"label\" colspan=\"3\">Situação Cadastral:</td>" + "<td align=\"left\" >" + "<input type=\"radio\" class=\"form_check_radio\" name=\"indAtivo\" id=\"indAtivo\" " + checked + " onclick=\"filtraPorIndAtivo(this.value)\" value=\"ativo\"> Ativos" + "</td>" + "</tr>");
1387 checked = "";
1388
1389 if ("N".equals(status))
1390 checked = "checked";
1391 html.append("<tr>" + "<td></td>" + "<td></td>" + "<td></td>" + "<td align=\"left\" >" + "<input type=\"radio\" class=\"form_check_radio\" name=\"indAtivo\" id=\"indAtivo\" " + checked + " onclick=\"filtraPorIndAtivo(this.value)\" value=\"inativo\"> Inativos" + "</td>" + "</tr>");
1392
1393 checked = "";
1394 if ("todos".equals(status))
1395 checked = "checked";
1396 html.append("<tr>" + "<td></td>" + "<td></td>" + "<td></td>" + "<td align=\"left\" >" + "<input type=\"radio\" class=\"form_check_radio\" name=\"indAtivo\" id=\"indAtivo\" " + checked + " onclick=\"filtraPorIndAtivo(this.value)\" value=\"todos\"> Todos" + "</td>" + "</tr>" + "<tr>" + "</tr>");
1397
1398 String[][] arquivo = new String[linhas][7];
1399 int linha = 2, coluna = 0;
1400
1401
1402
1403
1404
1405
1406
1407 arquivo[0][0] = "Nome";
1408 arquivo[0][1] = "Orgão(s)";
1409 arquivo[0][2] = "e-mail";
1410 arquivo[0][3] = "Fone";
1411 arquivo[0][4] = "Login";
1412 arquivo[0][5] = "Grupos de Acesso";
1413 arquivo[0][6] = "Situação Cadastral";
1414
1415 while (itUsu.hasNext()) {
1416 UsuarioUsu usu = (UsuarioUsu) itUsu.next();
1417
1418
1419 arquivo[linha][coluna] = Pagina.trocaNull(usu.getNomeUsuSent());
1420 coluna++;
1421
1422
1423 int contOrg = 0;
1424 if ((usu.getOrgaoOrgs() != null) && (usu.getOrgaoOrgs().size() > 0)) {
1425 Iterator itOrg = usu.getOrgaoOrgs().iterator();
1426 while (itOrg.hasNext()) {
1427 OrgaoOrg orgao = (OrgaoOrg) itOrg.next();
1428 arquivo[linha + (contOrg++)][coluna] = Pagina.trocaNull(orgao.getSiglaOrg().toString());
1429 }
1430 }
1431 coluna++;
1432
1433
1434 arquivo[linha][coluna] = Pagina.trocaNull(usu.getEmail1UsuSent());
1435 coluna++;
1436
1437
1438 arquivo[linha][coluna] = "(" + Pagina.trocaNull(usu.getComercDddUsu()) + ") " + Pagina.trocaNull(usu.getComercTelefoneUsu());
1439 coluna++;
1440
1441
1442 arquivo[linha][coluna] = Pagina.trocaNull(usu.getIdUsuarioUsu());
1443 coluna++;
1444
1445
1446 Set atribUsu = usu.getUsuarioAtributoUsuas();
1447 Iterator itAtrib = atribUsu.iterator();
1448 int contAcesso = 0;
1449 while (itAtrib.hasNext()) {
1450 UsuarioAtributoUsua sisatr = (UsuarioAtributoUsua) itAtrib.next();
1451 if (sisatr.getSisAtributoSatb().getSisGrupoAtributoSga().getCodSga().equals(Long.valueOf(4))) {
1452 arquivo[linha + (contAcesso++)][coluna] = Pagina.trocaNull(sisatr.getSisAtributoSatb().getDescricaoSatb());
1453 }
1454 }
1455 coluna++;
1456
1457
1458 arquivo[linha][coluna] = Pagina.trocaNull(usu.getIndAtivoUsu());
1459 if ("S".equals(arquivo[linha][coluna]))
1460 arquivo[linha][coluna] = "Ativo";
1461 else
1462 arquivo[linha][coluna] = "Inativo";
1463
1464 coluna++;
1465
1466 linha = linha + (Math.max(contAcesso, contOrg));
1467 coluna = 0;
1468 }
1469 int j = 0;
1470
1471 for (j = 0; j < 7; j++) {
1472 String width = "";
1473 if (j == 3) {
1474 width = "width=\"100px\" nowrap";
1475 }
1476 html.append("\n\t\t<td ").append(width).append(" >");
1477 html.append("\n\t\t\t<b>").append(arquivo[0][j]).append("</b>");
1478 html.append("\n\t</td>");
1479 }
1480 html.append("\n\t</tr>");
1481
1482 String cor = "";
1483 int auxCor = 0;
1484 for (int i = 1; i < linha; i++) {
1485 auxCor++;
1486
1487 html.append("\n\t<tr class=\"linha_subtitulo2_estrutura\" >");
1488 for (j = 0; j < 7; j++) {
1489 String width = "";
1490 if (j == 3) {
1491 width = "width=\"100px\" nowrap";
1492 }
1493 cor = (auxCor % 2 == 0) ? "#F6F7FB\" " : "#FFFFFF\" ";
1494
1495 html.append("\n\t\t<td ").append(width).append(" bgcolor=\"").append(cor);
1496 html.append(">\n\t\t\t").append(Pagina.trocaNull(arquivo[i][j]));
1497 html.append("\n\t\t</td>");
1498
1499 }
1500
1501 if (i + 1 < linha && "".equals(arquivo[i + 1][0]) || arquivo[i + 1][0] == null && "".equals(arquivo[i + 1][1]) || arquivo[i + 1][1] == null && "".equals(arquivo[i + 1][2]) || arquivo[i + 1][2] == null && "".equals(arquivo[i + 1][3]) || arquivo[i + 1][3] == null && "".equals(arquivo[i + 1][4]) || arquivo[i + 1][4] == null) {
1502 html.append("\n\t<tr class=\"linha_subtitulo2_estrutura\" >");
1503 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor).append(">\n\t\t</td>");
1504 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor).append(">\n\t\t</td>");
1505 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor).append(">\n\t\t</td>");
1506 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor).append(">\n\t\t</td>");
1507 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor).append(">\n\t\t</td>");
1508
1509 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor);
1510 html.append(">\n\t\t\t ").append(Pagina.trocaNull(arquivo[i + 1][5]));
1511 html.append("\n\t\t</td>");
1512
1513 html.append("\n\t\t<td ").append(" bgcolor=\"").append(cor).append(">\n\t\t</td>");
1514 html.append("\n\t</tr>");
1515 i++;
1516 }
1517 else
1518 html.append("\n\t</tr>");
1519 }
1520 html.append("</table>");
1521
1522 this.generateFile(path, arquivo, separador);
1523
1524
1525
1526 return path;
1527 }
1528
1529
1530
1531
1532
1533
1534
1535
1536 public List selecionaPorIndAtivo(String status) throws ECARException {
1537
1538 try {
1539 Query query = this.session.createQuery("select u from UsuarioUsu u where u.indAtivoUsu = :status");
1540
1541 query.setString("status", status);
1542
1543 List lista = query.list();
1544
1545 return lista;
1546
1547 } catch (HibernateException e) {
1548 this.logger.error(e);
1549 throw new ECARException("erro.hibernateException");
1550 }
1551
1552 }
1553
1554
1555
1556
1557
1558
1559
1560
1561 public String getCelularByUsuario(UsuarioUsu usuario) {
1562 String retorno = "";
1563
1564 if (usuario.getUsuarioAtributoUsuas() != null && !usuario.getUsuarioAtributoUsuas().isEmpty()) {
1565 for (Iterator it = usuario.getUsuarioAtributoUsuas().iterator(); it.hasNext();) {
1566 UsuarioAtributoUsua usua = (UsuarioAtributoUsua) it.next();
1567 if (usua.getSisAtributoSatb().getCodSatb().longValue() == 22) {
1568
1569
1570
1571
1572
1573
1574
1575
1576 retorno = usua.getInformacao();
1577 break;
1578 }
1579 }
1580 }
1581
1582 return retorno;
1583 }
1584
1585
1586
1587
1588
1589
1590
1591
1592 public boolean verificarUsuarioAtivo(Long codUsu) throws ECARException {
1593 UsuarioUsu usu = (UsuarioUsu) this.buscar(UsuarioUsu.class, codUsu);
1594 if (usu != null)
1595 return "S".equals(usu.getIndAtivoUsu()) ? true : false;
1596 else
1597 return false;
1598 }
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608 public void associarAhGruposSentinela(HttpServletRequest request, UsuarioUsu usuario) throws ECARException, SentinelaException {
1609 long codUsuarioSentinela = 0l;
1610 int i = 0;
1611 SentinelaAdmInterface sentinelaAdmin = SentinelaUtil.getSentinelaAdmInterface(request);
1612 SentinelaInterface sentinela = SentinelaUtil.getSentinelaInterface();
1613
1614 try {
1615 if (usuario.getIdDominioUsu() != null && usuario.getIdDominioUsu().length() != 0)
1616 codUsuarioSentinela = Long.parseLong(usuario.getIdDominioUsu());
1617 } catch (NumberFormatException numExcep) {
1618 throw new ECARException();
1619 }
1620 Set gruposVinculadosDepois = new HashSet<Long>(1);
1621 String[] strGruposVinculadosDepois = request.getParameterValues("vinculandos");
1622
1623 SentinelaParam[] gruposVinculadosSent = null;
1624
1625 if (codUsuarioSentinela != 0l)
1626 gruposVinculadosSent = sentinela.getGruposByUsuario(codUsuarioSentinela);
1627
1628 if (strGruposVinculadosDepois != null && strGruposVinculadosDepois.length != 0) {
1629 gruposVinculadosDepois = new HashSet<Long>(strGruposVinculadosDepois.length);
1630
1631 for (i = 0; i < strGruposVinculadosDepois.length; i++) {
1632 gruposVinculadosDepois.add(new Long(strGruposVinculadosDepois[i]));
1633 }
1634 }
1635
1636
1637
1638 for (int j = 0; j < gruposVinculadosSent.length; j++) {
1639 Long codigo = new Long(gruposVinculadosSent[j].getCodigo());
1640
1641 if (gruposVinculadosDepois.contains(codigo)) {
1642 gruposVinculadosDepois.remove(codigo);
1643 }
1644 else {
1645 sentinelaAdmin.desvincularUsuarioGrupo(codUsuarioSentinela, codigo);
1646 }
1647 }
1648
1649 for (Iterator iterator = gruposVinculadosDepois.iterator(); iterator.hasNext();) {
1650 Long codigo = (Long) iterator.next();
1651 sentinelaAdmin.vincularUsuarioGrupo(codUsuarioSentinela, codigo);
1652 }
1653
1654
1655
1656
1657
1658
1659 }
1660
1661 private void generateFile(String sFileName, String[][] conteudo, String separador) throws IOException {
1662 FileWriter writer = new FileWriter(sFileName);
1663
1664 for (int i = 0; i < conteudo.length; i++) {
1665 for (int j = 0; j < conteudo[i].length; j++) {
1666 if (conteudo[i][j] != null) {
1667 writer.append(conteudo[i][j]);
1668 }
1669 if (j + 1 < conteudo[i].length) {
1670 writer.append(separador);
1671 }
1672 }
1673 writer.append('\n');
1674 }
1675
1676
1677
1678 writer.flush();
1679 writer.close();
1680
1681 }
1682 }