package gcom.seguranca.acesso.usuario; import gcom.cadastro.ControladorCadastroLocal; import gcom.cadastro.ControladorCadastroLocalHome; import gcom.cadastro.EnvioEmail; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.interceptor.RegistradorOperacao; import gcom.seguranca.acesso.ControladorAcessoLocal; import gcom.seguranca.acesso.ControladorAcessoLocalHome; import gcom.seguranca.acesso.Grupo; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ControladorUtilLocal; import gcom.util.ControladorUtilLocalHome; import gcom.util.Criptografia; import gcom.util.ErroCriptografiaException; import gcom.util.ErroRepositorioException; import gcom.util.IRepositorioUtil; import gcom.util.RepositorioUtilHBM; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import gcom.util.Util; import gcom.util.email.ErroEmailException; import gcom.util.email.ServicosEmail; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.ejb.CreateException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; /** * Defini��o da l�gica de neg�cio do Session Bean de ControladorCliente * * @author S�vio Luiz * @created 25 de Abril de 2005 */ public class ControladorUsuarioSEJB implements SessionBean { private static final long serialVersionUID = 1L; private IRepositorioUtil repositorioUtil; private IRepositorioUsuario repositorioUsuario; SessionContext sessionContext; /** * < <Descri��o do m�todo>> * * @exception CreateException * Descri��o da exce��o */ public void ejbCreate() throws CreateException { repositorioUtil = RepositorioUtilHBM.getInstancia(); repositorioUsuario = RepositorioUsuarioHBM.getInstancia(); } /** * < <Descri��o do m�todo>> */ public void ejbRemove() { } /** * < <Descri��o do m�todo>> */ public void ejbActivate() { } /** * < <Descri��o do m�todo>> */ public void ejbPassivate() { } /** * Seta o valor de sessionContext * * @param sessionContext * O novo valor de sessionContext */ public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } private ControladorCadastroLocal getControladorCadastro() { ControladorCadastroLocalHome localHome = null; ControladorCadastroLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorCadastroLocalHome) locator .getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_CADASTRO_SEJB); local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Retorna o valor de controladorUtil * * @return O valor de controladorUtil */ private ControladorUtilLocal getControladorUtil() { ControladorUtilLocalHome localHome = null; ControladorUtilLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorUtilLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Retorna o valor de controladorAcesso * * @return O valor de controladorAcesso */ private ControladorAcessoLocal getControladorAcesso() { ControladorAcessoLocalHome localHome = null; ControladorAcessoLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorAcessoLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_ACESSO_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Inseri um usuario com seus grupos * * [UC0230]Inserir Usuario * * @author Thiago Toscano * @date 19/05/2006 * * @param usuario * @param idGrupo * grupos que o usuario faz parte * @throws ControladorException */ public void inserirUsuario(Usuario usuario, Integer[] idGrupos, Usuario usuarioLogado, String idSolicitacaoAcesso) throws ControladorException { // Verifica se j� existe um usu�rio com este login FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.LOGIN, usuario.getLogin())); Collection colecaoUsuarios = getControladorUtil().pesquisar(filtroUsuario, Usuario.class.getName()); if (colecaoUsuarios != null && !colecaoUsuarios.isEmpty()) { throw new ControladorException("atencao.usuario.login.ja.existe", null, usuario.getLogin()); } /* * [UC0107] Registrar Transa��o * */ /* RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_INSERIR, new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_USUARIO_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao);*/ // recupera o sistema parametro SistemaParametro sistemaParametro = null; sistemaParametro = getControladorUtil().pesquisarParametrosDoSistema(); usuario.setNumeroAcessos(new Integer(0)); usuario.setUltimoAcesso(null); String senhaGerada = null; if (sistemaParametro.getIndicadorSenhaForte().compareTo(ConstantesSistema.SIM.intValue())==0) { senhaGerada = Util.gerarSenhaForte(8); } else { senhaGerada = "gcom"; } String senhaCriptografada = null; try { senhaCriptografada = Criptografia.encriptarSenha(senhaGerada); } catch (ErroCriptografiaException e1) { throw new ControladorException("erro.criptografia.senha"); } usuario.setSenha(senhaCriptografada); usuario.setBloqueioAcesso(new Short((short) 0)); usuario.setDataCadastroAcesso(new Date()); usuario.setUltimaAlteracao(new Date()); UsuarioSituacao usuarioSituacao = new UsuarioSituacao(); usuarioSituacao.setId(UsuarioSituacao.PENDENTE_SENHA); usuario.setUsuarioSituacao(usuarioSituacao); Date dataNascimento = usuario.getDataNascimento(); usuario.setDataNascimento(dataNascimento); usuario.setLembreteSenha(null); String cpf = usuario.getCpf(); usuario.setCpf(cpf); usuario.setIndicadorExibeMensagem(new Short( (short) TarefaRelatorio.INDICADOR_EXIBE_MENSAGEM)); usuario.setIndicadorTipoRelatorioPadrao(new Short( (short) TarefaRelatorio.TIPO_PDF)); Date dataCadastramentoFinal = usuario.getDataCadastroFim(); Date dataAtual = new Date(); int numeroDiasExpiracaoAcesso = sistemaParametro .getNumeroDiasExpiracaoAcesso().intValue(); int numeroDiasMSGExpiracao = sistemaParametro .getNumeroDiasMensagemExpiracao().intValue(); Date dataAtualMaisDiasSistemasParametros = Util .adicionarNumeroDiasDeUmaData(dataAtual, numeroDiasExpiracaoAcesso); Date dataAtualMenosDiasMSGExpiracao = Util.subtrairNumeroDiasDeUmaData( dataAtualMaisDiasSistemasParametros, numeroDiasMSGExpiracao); // verifica a data de cadastramento final se � diferente de nulo if (dataCadastramentoFinal != null && !dataCadastramentoFinal.equals("")) { // caso a data atual + dias sistemas parametros seja maior que a // data de cadastramento final do usu�rio if (dataAtualMaisDiasSistemasParametros .after(dataCadastramentoFinal)) { // seta o valor da data de cadastramento final do usuario no // usuario data expira��o acesso usuario.setDataExpiracaoAcesso(dataCadastramentoFinal); } else { // seta o valor da a data atual + dias sistemas parametros no // usuario data expira��o acesso usuario .setDataExpiracaoAcesso(dataAtualMaisDiasSistemasParametros); } // caso a data atual - dias mensagem expiracao sistemas parametros // seja maior que a // data de cadastramento final do usu�rio if (dataAtualMenosDiasMSGExpiracao.after(dataCadastramentoFinal)) { // seta o valor da data de cadastramento final do usuario no // usuario data expira��o acesso usuario.setDataPrazoMensagemExpiracao(dataCadastramentoFinal); } else { // seta o valor da a data atual - dias mensagem expiracao // sistemas parametros no // usuario data expira��o acesso usuario .setDataPrazoMensagemExpiracao(dataAtualMenosDiasMSGExpiracao); } } else { // seta o valor da a data atual + dias sistemas parametros no // usuario data expira��o acesso usuario.setDataExpiracaoAcesso(dataAtualMaisDiasSistemasParametros); // seta o valor da a data atual - dias mensagem expiracao sistemas // parametros no // usuario data prazo mensagem expira��o acesso usuario .setDataPrazoMensagemExpiracao(dataAtualMenosDiasMSGExpiracao); } // // registrar transa��o // usuario.setOperacaoEfetuada(operacaoEfetuada); // usuario.adicionarUsuario(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuario); // usuario.setUltimaAlteracao(new Date()); /* * [UC0107] Registrar Transa��o * */ //Altera��o Fl�vio // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_INSERIR, usuario.getId(), usuario.getId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(usuario); // ------------ REGISTRAR TRANSA��O ---------------- /* * Seta a data da ultima atualiza��o do grupo e atualiza os dados do * grupo */ usuario.setUltimaAlteracao(new Date()); this.getControladorUtil().inserir(usuario); if(idSolicitacaoAcesso != null){ this.getControladorAcesso().atualizarCadastroSolicitacaoAcesso(new Integer(idSolicitacaoAcesso)); } /** * Para todos os grupos selecionados cria o relacionamento */ if (idGrupos != null) { for (int i = 0; i < idGrupos.length; i++) { Integer idGrupo = idGrupos[i]; // cria o grupo corrente Grupo grupo = new Grupo(); grupo.setId(idGrupo); // cria a pk UsuarioGrupoPK pk = new UsuarioGrupoPK(); pk.setGrupoId(grupo.getId()); pk.setUsuarioId(usuario.getId()); // cria o relacionamenteo do usuario com o grupo UsuarioGrupo usuarioGrupo = new UsuarioGrupo(); usuarioGrupo.setGrupo(grupo); usuarioGrupo.setUsuario(usuario); usuarioGrupo.setComp_id(pk); usuarioGrupo.setUltimaAlteracao(new Date()); // // registrar transa��o // usuarioGrupo.setOperacaoEfetuada(operacaoEfetuada); // usuarioGrupo.adicionarUsuario(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuarioGrupo); try { // salvando o usuarioGrupo repositorioUtil.inserir(usuarioGrupo); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } } // Envia e-mail para o usuario informando usuario e senha if (usuario.getDescricaoEmail() != null && !usuario.getDescricaoEmail().equals("")) { String mensagem = "Login:" + usuario.getLogin() + " \n" + "Senha:" + senhaGerada; EnvioEmail envioEmail = getControladorCadastro().pesquisarEnvioEmail(EnvioEmail.INSERIR_USUARIO); try { ServicosEmail.enviarMensagem(envioEmail.getEmailRemetente(), usuario .getDescricaoEmail(), envioEmail.getTituloMensagem(), mensagem); } catch (ErroEmailException e) { //throw new ControladorException("erro.envio.mensagem"); } } } /** * Atualiza um usuario com seus grupos * * [UC0231]Atualizar Usuario * * @author S�vio Luiz * @date 07/07/2006 * * @param usuario * @param idGrupo * grupos que o usuario faz parte * @throws ControladorException */ public void atualizarUsuario(Usuario usuario, Integer[] idGrupos, String processo, Usuario usuarioLogado) throws ControladorException { // Verifica se j� existe um usu�rio com este login FiltroUsuario filtroUsuarioValidacaoLogin = new FiltroUsuario(); filtroUsuarioValidacaoLogin.adicionarParametro( new ParametroSimples(FiltroUsuario.LOGIN, usuario.getLogin())); filtroUsuarioValidacaoLogin.adicionarParametro( new ParametroSimplesDiferenteDe(FiltroUsuario.ID, usuario.getId())); Collection colecaoUsuarios = getControladorUtil().pesquisar(filtroUsuarioValidacaoLogin, Usuario.class.getName()); if (colecaoUsuarios != null && !colecaoUsuarios.isEmpty()) { throw new ControladorException("atencao.usuario.login.ja.existe", null, usuario.getLogin()); } /* * [UC0107] Registrar Transa��o * */ // RegistradorOperacao registradorOperacao = // new RegistradorOperacao( // Operacao.OPERACAO_USUARIO_ATUALIZAR, // new UsuarioAcaoUsuarioHelper( // usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // // Operacao operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_USUARIO_ATUALIZAR); // // OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); // removendo os usuarios grupos FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro( new ParametroSimples(FiltroUsuario.ID, usuario.getId())); Collection coll = this.getControladorUtil().pesquisar( filtroUsuario, Usuario.class.getSimpleName()); Usuario usuarioCadastrado = (Usuario) coll.iterator().next(); if (usuarioCadastrado == null) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.registro_remocao_nao_existente"); } usuario.setUltimaAlteracao(new Date()); if (usuarioCadastrado.getUltimaAlteracao() != null && usuario.getUltimaAlteracao() != null && usuarioCadastrado.getUltimaAlteracao().after(usuario.getUltimaAlteracao())) { throw new ControladorException("atencao.atualizacao.timestamp"); } // recupera o sistema parametro SistemaParametro sistemaParametro = getControladorUtil().pesquisarParametrosDoSistema(); usuario.setDataCadastroAcesso(new Date()); usuario.setUltimaAlteracao(new Date()); Date dataCadastramentoFinal = usuario.getDataCadastroFim(); Date dataAtual = new Date(); int numeroDiasExpiracaoAcesso = sistemaParametro.getNumeroDiasExpiracaoAcesso().intValue(); int numeroDiasMSGExpiracao = sistemaParametro.getNumeroDiasMensagemExpiracao().intValue(); Date dataAtualMaisDiasSistemasParametros = Util.adicionarNumeroDiasDeUmaData(dataAtual,numeroDiasExpiracaoAcesso); Date dataAtualMenosDiasMSGExpiracao = Util.subtrairNumeroDiasDeUmaData( dataAtualMaisDiasSistemasParametros, numeroDiasMSGExpiracao); // verifica a data de cadastramento final se � diferente de nulo if (dataCadastramentoFinal != null && !dataCadastramentoFinal.equals("")) { // caso a data atual + dias sistemas parametros seja maior que a // data de cadastramento final do usu�rio if (dataAtualMaisDiasSistemasParametros.after(dataCadastramentoFinal)) { // seta o valor da data de cadastramento final do usuario no // usuario data expira��o acesso usuario.setDataExpiracaoAcesso(dataCadastramentoFinal); } else { // seta o valor da a data atual + dias sistemas parametros no // usuario data expira��o acesso usuario.setDataExpiracaoAcesso(dataAtualMaisDiasSistemasParametros); } // caso a data atual - dias mensagem expiracao sistemas parametros // seja maior que a // data de cadastramento final do usu�rio if (dataAtualMenosDiasMSGExpiracao.after(dataCadastramentoFinal)) { // seta o valor da data de cadastramento final do usuario no // usuario data expira��o acesso usuario.setDataPrazoMensagemExpiracao(dataCadastramentoFinal); } else { // seta o valor da a data atual - dias mensagem expiracao // sistemas parametros no // usuario data expira��o acesso usuario.setDataPrazoMensagemExpiracao(dataAtualMenosDiasMSGExpiracao); } } else { // seta o valor da a data atual + dias sistemas parametros no // usuario data expira��o acesso usuario.setDataExpiracaoAcesso(dataAtualMaisDiasSistemasParametros); // seta o valor da a data atual - dias mensagem expiracao sistemas // parametros no // usuario data prazo mensagem expira��o acesso usuario.setDataPrazoMensagemExpiracao(dataAtualMenosDiasMSGExpiracao); } // registrar transa��o // usuario.setOperacaoEfetuada(operacaoEfetuada); // usuario.adicionarUsuario(usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuario); // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_ATUALIZAR, usuario.getId(), usuario.getId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(usuario); // ------------ REGISTRAR TRANSA��O ---------------- this.getControladorUtil().atualizar(usuario); /* * [UC0107] Registrar Transa��o * */ if(processo != null){ if(processo.equalsIgnoreCase("2")){ // Caso o usuario tenha alterado os dados da segunda aba // registradorOperacao = new RegistradorOperacao( // Operacao.OPERACAO_USUARIO_REMOVER, // new UsuarioAcaoUsuarioHelper( // usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_USUARIO_ATUALIZAR); // // operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); // removendo os usuarios grupos FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo(); filtroUsuarioGrupo.adicionarParametro( new ParametroSimples( FiltroUsuarioGrupo.USUARIO_ID, usuario.getId())); coll = this.getControladorUtil().pesquisar(filtroUsuarioGrupo, UsuarioGrupo.class.getSimpleName()); /* * Alteracao realizada por R�mulo Aur�lio * * Problema na hora de remover usuarios grupos que existam na tabela usuarioGrupoRestricao * * Solicitado por Fatima * * Data: 14/05/2006 */ FiltroUsuarioGrupoRestricao filtroUsuarioGrupoRestricao = new FiltroUsuarioGrupoRestricao(); filtroUsuarioGrupoRestricao.adicionarParametro( new ParametroSimples( FiltroUsuarioGrupoRestricao.USUARIO_ID, usuario.getId())); filtroUsuarioGrupoRestricao.adicionarCaminhoParaCarregamentoEntidade("usuarioGrupo.grupo"); filtroUsuarioGrupoRestricao.adicionarCaminhoParaCarregamentoEntidade("usuarioGrupo.usuario"); filtroUsuarioGrupoRestricao.adicionarCaminhoParaCarregamentoEntidade("grupoFuncionalidadeOperacao"); Collection colecaoGrupoRestricao = getControladorUtil().pesquisar(filtroUsuarioGrupoRestricao, UsuarioGrupoRestricao.class.getName()); if(colecaoGrupoRestricao!=null && !colecaoGrupoRestricao.isEmpty()){ Iterator colecaoGrupoRestricaoIterator = colecaoGrupoRestricao.iterator(); while(colecaoGrupoRestricaoIterator.hasNext()){ UsuarioGrupoRestricao usuarioGrupoRestricao = (UsuarioGrupoRestricao) colecaoGrupoRestricaoIterator.next(); getControladorUtil().remover(usuarioGrupoRestricao); } } if (coll != null && !coll.isEmpty()) { Iterator it = coll.iterator(); while (it.hasNext()) { UsuarioGrupo usuarioGrupo = (UsuarioGrupo) it.next(); // registrar transa��o // usuarioGrupo.setOperacaoEfetuada(operacaoEfetuada); // usuarioGrupo.adicionarUsuario( // usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuarioGrupo); this.getControladorUtil().remover(usuarioGrupo); } } /* * [UC0107] Registrar Transa��o * */ // registradorOperacao = new RegistradorOperacao( // Operacao.OPERACAO_USUARIO_REMOVER, // new UsuarioAcaoUsuarioHelper( // usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // // operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_USUARIO_INSERIR); // // operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); /** * Para todos os grupos selecionados cria o relacionamento */ Collection colecaoGrupos = new ArrayList(); if (idGrupos != null) { for (int i = 0; i < idGrupos.length; i++) { Integer idGrupo = idGrupos[i]; // cria o grupo corrente Grupo grupo = new Grupo(); grupo.setId(idGrupo); colecaoGrupos.add(grupo.getId()); // cria a pk UsuarioGrupoPK pk = new UsuarioGrupoPK(); pk.setGrupoId(grupo.getId()); pk.setUsuarioId(usuario.getId()); // cria o relacionamenteo do usuario com o grupo UsuarioGrupo usuarioGrupo = new UsuarioGrupo(); usuarioGrupo.setGrupo(grupo); usuarioGrupo.setUsuario(usuario); usuarioGrupo.setComp_id(pk); usuarioGrupo.setUltimaAlteracao(new Date()); // // registrar transa��o // usuarioGrupo.setOperacaoEfetuada(operacaoEfetuada); // usuarioGrupo.adicionarUsuario(usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuarioGrupo); // salvando o usuarioGrupo this.getControladorUtil().inserir(usuarioGrupo); } } if (colecaoGrupoRestricao != null && !colecaoGrupoRestricao.isEmpty()) { Iterator colecaoGrupoRestricaoIterator = colecaoGrupoRestricao.iterator(); while (colecaoGrupoRestricaoIterator.hasNext()) { UsuarioGrupoRestricao usuarioGrupoRestricao = (UsuarioGrupoRestricao) colecaoGrupoRestricaoIterator.next(); if (colecaoGrupos.contains(usuarioGrupoRestricao.getUsuarioGrupo().getGrupo().getId())) { this.getControladorUtil().inserir(usuarioGrupoRestricao); } } } } } //Alterado por Vivianne Sousa 13/02/2007 //solicitado por Leonardo Vieira if (usuario.getUsuarioTipo().getIndicadorFuncionario() == UsuarioTipo.INDICADOR_FUNCIONARIO){ Funcionario funcionario = usuario.getFuncionario(); FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro( new ParametroSimples(FiltroFuncionario.ID, funcionario.getId())); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade(FiltroFuncionario.UNIDADE_ORGANIZACIONAL); Collection colecaoFuncionario = this.getControladorUtil().pesquisar(filtroFuncionario, Funcionario.class.getSimpleName()); if (colecaoFuncionario != null && !colecaoFuncionario.isEmpty()) { Funcionario f = (Funcionario) colecaoFuncionario.iterator().next(); if (!f.getUnidadeOrganizacional().getId().equals(funcionario.getUnidadeOrganizacional().getId())){ // funcionario.setOperacaoEfetuada(operacaoEfetuada); // funcionario.adicionarUsuario(usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // funcionario.setUltimaAlteracao(new Date()); this.getControladorUtil().atualizar(funcionario); } } } } /** * Remove usuario(s) * * [UC0231] Manter Usuario * * @author S�vio Luiz * @date 07/07/2006 * @param idsUsuario * @param usuario * @throws ControladorException */ public void removerUsuario(String[] idsUsuario, Usuario usuario, Usuario usuarioLogado) throws ControladorException { // removendo os usuarios grupos for (int i = 0; i < idsUsuario.length; i++) { // // ------------ REGISTRAR TRANSA��O ---------------- // RegistradorOperacao registradorOperacao = new RegistradorOperacao( // Operacao.OPERACAO_USUARIO_REMOVER, // new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // Operacao operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_USUARIO_REMOVER); // // OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); // Parte da verifica��o do filtro FiltroUsuario filtroUsuario = new FiltroUsuario(); // filtroUsuario.setCampoOrderBy(FiltroUsuario.NOME_USUARIO); filtroUsuario.adicionarParametro(new ParametroSimples( FiltroUsuario.ID, idsUsuario[i])); filtroUsuario .adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional"); filtroUsuario .adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional.unidadeTipo"); filtroUsuario .adicionarCaminhoParaCarregamentoEntidade("funcionario.unidadeOrganizacional"); Collection colecaoUsuario = this.getControladorUtil().pesquisar( filtroUsuario, Usuario.class.getName()); Usuario usuarioParaRemover = (Usuario) Util .retonarObjetoDeColecao(colecaoUsuario); // [FS0008] - Verificar permiss�o para atualiza��o UnidadeOrganizacional unidadeEmpresa = usuarioParaRemover .getUnidadeOrganizacional(); if (unidadeEmpresa == null) { if (usuarioParaRemover.getFuncionario() != null && !usuarioParaRemover.getFuncionario().equals("")) { unidadeEmpresa = usuarioParaRemover.getFuncionario() .getUnidadeOrganizacional(); } } // caso o usu�rio que esteja efetuando a inser��o n�o // seja // do grupo de administradores FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo(); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples( FiltroUsuarioGrupo.USUARIO_ID, usuario.getId())); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples( FiltroUsuarioGrupo.GRUPO_ID, Grupo.ADMINISTRADOR)); Collection colecaoUsuarioGrupo = this.getControladorUtil().pesquisar( filtroUsuarioGrupo, UsuarioGrupo.class.getName()); if (colecaoUsuarioGrupo == null || colecaoUsuarioGrupo.isEmpty()) { // se a unidade de lotacao do usuario que estiver // efetuando seja diferente da unidade de // lota��o informada if (usuario.getUnidadeOrganizacional() != null && unidadeEmpresa != null && usuario.getUnidadeOrganizacional().getId() != null && !usuario.getUnidadeOrganizacional().getId().equals( unidadeEmpresa.getId())) { // recupera a unidade do usu�rio FiltroUnidadeOrganizacional filtroUnidadeEmpresaUsuario = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresaUsuario .adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, usuario .getUnidadeOrganizacional().getId())); filtroUnidadeEmpresaUsuario.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo"); Collection colecaoUnidadeEmpresa = this.getControladorUtil() .pesquisar(filtroUnidadeEmpresaUsuario, UnidadeOrganizacional.class.getName()); UnidadeOrganizacional unidadeEmpresaUsuario = new UnidadeOrganizacional(); if (colecaoUnidadeEmpresa != null && !colecaoUnidadeEmpresa.isEmpty()) { unidadeEmpresaUsuario = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(colecaoUnidadeEmpresa); } // se o nivel da unidade de lota��o do usu�rio // que // estiver efetuando a inser��o seja maior ou // igual // ao nivel de unidade de lota��o informada if (unidadeEmpresaUsuario != null) { if (unidadeEmpresaUsuario.getUnidadeTipo().getNivel() .intValue() >= unidadeEmpresa.getUnidadeTipo() .getNivel().intValue()) { throw new ControladorException( "atencao.usuario.sem.permissao.atualizacao", null, usuario.getLogin(), unidadeEmpresa .getDescricao()); } } // ou a unidade superior da unidade de lota��o // informada seja diferente da unidade de // lota��o do usu�rio // enquanto o nivel superior da unidade de // lota��o n�o esteja no mesmo nivel da unidade // de lota��o do usu�rio boolean mesmoNivel = true; Integer idNivelUsuario = unidadeEmpresaUsuario .getUnidadeTipo().getNivel().intValue(); UnidadeOrganizacional unidadeEmpresaSuperior = null; while (mesmoNivel) { Integer idUnidadeEmpresaSuperior = null; if (unidadeEmpresaSuperior == null) { idUnidadeEmpresaSuperior = unidadeEmpresa .getUnidadeSuperior().getId(); } else { idUnidadeEmpresaSuperior = unidadeEmpresaSuperior .getUnidadeSuperior().getId(); } // recupera a unidade do usu�rio FiltroUnidadeOrganizacional filtroUnidadeEmpresaSuperior = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresaSuperior .adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idUnidadeEmpresaSuperior)); Collection colecaoUnidadeEmpresaSuperior = this.getControladorUtil().pesquisar( filtroUnidadeEmpresaSuperior, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeEmpresaSuperior != null && !colecaoUnidadeEmpresaSuperior.isEmpty()) { unidadeEmpresaSuperior = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(colecaoUnidadeEmpresaSuperior); } if (unidadeEmpresaSuperior != null) { // caso seja o mesmo nivel if (unidadeEmpresaSuperior.getUnidadeTipo() .getNivel().equals(idNivelUsuario)) { mesmoNivel = false; // caso o id da unidade empresa // informado for diferente do id da // unidade empresa do usu�rio no // mesmo nivel if (!unidadeEmpresaSuperior.getId().equals( unidadeEmpresaUsuario.getId())) { throw new ControladorException( "atencao.usuario.sem.permissao.atualizacao", null, usuario.getLogin(), unidadeEmpresa.getDescricao()); } } } } } } // remove os usuarios grupos restrin��es FiltroUsuarioGrupoRestricao filtroUsuarioGrupoRestricao = new FiltroUsuarioGrupoRestricao(); filtroUsuarioGrupoRestricao .adicionarParametro(new ParametroSimples( FiltroUsuarioGrupoRestricao.USUARIO_ID, idsUsuario[i])); Collection colecaoUsuarioGrupoRestricao = this.getControladorUtil() .pesquisar(filtroUsuarioGrupoRestricao, UsuarioGrupoRestricao.class.getName()); if (colecaoUsuarioGrupoRestricao != null && !colecaoUsuarioGrupoRestricao.isEmpty()) { Iterator it = colecaoUsuarioGrupoRestricao.iterator(); while (it.hasNext()) { UsuarioGrupoRestricao usuarioGrupoRestricao = (UsuarioGrupoRestricao) it .next(); // // registrar transa��o // usuarioGrupoRestricao.setOperacaoEfetuada(operacaoEfetuada); // usuarioGrupoRestricao.adicionarUsuario( // Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao // .registrarOperacao(usuarioGrupoRestricao); this.getControladorUtil().remover(usuarioGrupoRestricao); } } // remove os usuarioGrupos FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial .adicionarParametro(new ParametroSimples( FiltroUsuarioPemissaoEspecial.USUARIO_ID, idsUsuario[i])); Collection colecaoUsuarioPermissaoEspecial = this .getControladorUtil().pesquisar( filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getSimpleName()); if (colecaoUsuarioPermissaoEspecial != null && !colecaoUsuarioPermissaoEspecial.isEmpty()) { Iterator it = colecaoUsuarioPermissaoEspecial.iterator(); while (it.hasNext()) { UsuarioPermissaoEspecial usuarioPermissaoEspecial = (UsuarioPermissaoEspecial) it .next(); // // registrar transa��o // usuarioPermissaoEspecial // .setOperacaoEfetuada(operacaoEfetuada); // usuarioPermissaoEspecial.adicionarUsuario( // Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao // .registrarOperacao(usuarioPermissaoEspecial); this.getControladorUtil().remover(usuarioPermissaoEspecial); } } // remove os usuarios grupos FiltroUsuarioGrupo filtroUsuarioGrupoParaRemocao = new FiltroUsuarioGrupo(); filtroUsuarioGrupoParaRemocao .adicionarParametro(new ParametroSimples( FiltroUsuarioGrupo.USUARIO_ID, idsUsuario[i])); Collection colecaoUsuarioGrupoParaRemocao = this .getControladorUtil().pesquisar( filtroUsuarioGrupoParaRemocao, UsuarioGrupo.class.getSimpleName()); if (colecaoUsuarioGrupoParaRemocao != null && !colecaoUsuarioGrupoParaRemocao.isEmpty()) { Iterator it = colecaoUsuarioGrupoParaRemocao.iterator(); while (it.hasNext()) { UsuarioGrupo usuarioGrupo = (UsuarioGrupo) it.next(); // registrar transa��o // usuarioGrupo.setOperacaoEfetuada(operacaoEfetuada); // usuarioGrupo.adicionarUsuario(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuarioGrupo); // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_REMOVER, usuarioParaRemover.getId(), usuarioParaRemover.getId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(usuarioParaRemover); // ------------ REGISTRAR TRANSA��O ---------------- this.getControladorUtil().remover(usuarioGrupo); } } //remove os usuarios favoritos FiltroUsuarioFavorito filtroUsuarioFavoritoParaRemocao = new FiltroUsuarioFavorito(); filtroUsuarioFavoritoParaRemocao.adicionarParametro( new ParametroSimples( FiltroUsuarioFavorito.USUARIO_ID, idsUsuario[i] )); Collection colecaoUsuarioFavorito = this.getControladorUtil().pesquisar(filtroUsuarioFavoritoParaRemocao, UsuarioFavorito.class.getName()); if(colecaoUsuarioFavorito != null && !colecaoUsuarioFavorito.isEmpty()) { Iterator iteUsuarioFavorito = colecaoUsuarioFavorito.iterator(); while (iteUsuarioFavorito.hasNext()){ UsuarioFavorito usuarioFavorito = (UsuarioFavorito) iteUsuarioFavorito.next(); // // registrar transa��o // usuarioFavorito.setOperacaoEfetuada(operacaoEfetuada); // usuarioFavorito.adicionarUsuario(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // // registradorOperacao.registrarOperacao(usuarioFavorito); this.getControladorUtil().remover(usuarioFavorito); } } //remove os usuario altera��o FiltroUsuarioAlteracao filtroUsuarioAlteracaoParaRemocao = new FiltroUsuarioAlteracao(); filtroUsuarioAlteracaoParaRemocao.adicionarParametro( new ParametroSimples(FiltroUsuarioAlteracao.USUARIO_ID, idsUsuario[i])); Collection colecaoUsuarioAlteracao = this.getControladorUtil().pesquisar(filtroUsuarioAlteracaoParaRemocao , UsuarioAlteracao.class.getName()); if(colecaoUsuarioAlteracao != null && !colecaoUsuarioAlteracao.isEmpty()) { Iterator iteUsuarioAlteracao = colecaoUsuarioAlteracao.iterator(); while ( iteUsuarioAlteracao.hasNext() ) { UsuarioAlteracao usuarioAlteracao = (UsuarioAlteracao) iteUsuarioAlteracao.next(); //Registrar Transacao //usuarioAlteracao.setOperacaoEfetuada(operacaoEfetuada); this.getControladorUtil().remover(usuarioAlteracao); } } //registrar transa��ofiltroUsuarioGrupoRestricao.adicionarCaminhoParaCarregamentoEntidade("grupo"); // usuarioParaRemover.setOperacaoEfetuada(operacaoEfetuada); // usuarioParaRemover.adicionarUsuario(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_REMOVER, usuarioParaRemover.getId(), usuarioParaRemover.getId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(usuarioParaRemover); // ------------ REGISTRAR TRANSA��O ---------------- this.getControladorUtil().remover(usuarioParaRemover); } } /** * M�todo que atualiza o controle de acesso do usu�rio * * [UC0231] - Manter Usu�rio * * @author S�vio Luiz * @date 14/07/2006 * * @param String[] * @param grupoFuncionalidadeOperacao */ public void atualizarControleAcessoUsuario( String[] permissoesEspeciais, Map<Integer, Map<Integer, Collection<Operacao>>> funcionalidadesMap, Usuario usuarioAtualizar, Integer[] idsGrupos, String permissoesCheckBoxVazias, Usuario usuarioLogado) throws ControladorException { if (funcionalidadesMap != null && !funcionalidadesMap.isEmpty()) { /* * Pesquisa todos os usu�rios grupos restrin��es, e remove todos * para ser inseridos os novos acesso(s) informados pelo usu�rio */ FiltroUsuarioGrupoRestricao filtroUsuarioGrupoRestricao = new FiltroUsuarioGrupoRestricao(); filtroUsuarioGrupoRestricao .adicionarParametro(new ParametroSimples( FiltroUsuarioGrupoRestricao.USUARIO_ID, usuarioAtualizar.getId())); Collection colecaoUsuarioGrupoRestrincaoCadastradas = getControladorUtil() .pesquisar(filtroUsuarioGrupoRestricao, UsuarioGrupoRestricao.class.getName()); if (colecaoUsuarioGrupoRestrincaoCadastradas != null && !colecaoUsuarioGrupoRestrincaoCadastradas.isEmpty()) { Iterator iteratorUsuarioGrupoRestrincao = colecaoUsuarioGrupoRestrincaoCadastradas .iterator(); while (iteratorUsuarioGrupoRestrincao.hasNext()) { UsuarioGrupoRestricao usuarioGrupoRestricao = (UsuarioGrupoRestricao) iteratorUsuarioGrupoRestrincao .next(); /* * // registrar transa��o * usuarioGrupoRestricao.setOperacaoEfetuada(operacaoEfetuada); * usuarioGrupoRestricao.adicionarUsuario( * Usuario.USUARIO_TESTE, * UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); * * registradorOperacao * .registrarOperacao(usuarioGrupoRestricao); */ getControladorUtil().remover(usuarioGrupoRestricao); } } /* * Caso o usu�rio tenha informado algum acesso para o grupo que est� * sendo atualizado, inseri na tabela usuario_grupo_restrin��o */ Collection idsfuncionalidades = funcionalidadesMap.keySet(); if (idsfuncionalidades != null && !idsfuncionalidades.isEmpty()) { Iterator iteratorFuncionalidades = idsfuncionalidades .iterator(); // verifica se existe a funcionalidade escolhida na cole��o de // funcionalidade while (iteratorFuncionalidades.hasNext()) { Integer idfuncionalidade = (Integer) iteratorFuncionalidades .next(); Map<Integer, Collection<Operacao>> operacoesMap = funcionalidadesMap .get(idfuncionalidade); // para cada funcionalidade verifica se existe opera��es // desmarcadas(com indicador igual a 2). Collection colecaoOperacao = operacoesMap.get(2); if (colecaoOperacao != null && !colecaoOperacao.isEmpty()) { Iterator iteratorOperacao = colecaoOperacao.iterator(); while (iteratorOperacao.hasNext()) { Operacao operacao = (Operacao) iteratorOperacao .next(); Collection idsGruposNaBase = null; try { // pesquisando os ids que v�o ser inseridos na // tabela de // usuarioGrupoRestrincao idsGruposNaBase = repositorioUsuario .pesquisarIdsGruposPelaFuncionalidadeGruposOperacao( idsGrupos, idfuncionalidade, operacao.getId()); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } // recupera os ids dos grupos existente no grupo // funcionalidade operacao Iterator iteratoridsGrupos = idsGruposNaBase .iterator(); while (iteratoridsGrupos.hasNext()) { Integer idGrupo = (Integer) iteratoridsGrupos .next(); UsuarioGrupoRestricao usuarioGrupoRestricao = new UsuarioGrupoRestricao(); UsuarioGrupoRestricaoPK usuarioGrupoRestricaoPK = new UsuarioGrupoRestricaoPK(); usuarioGrupoRestricaoPK .setFuncionalidadeId(idfuncionalidade); usuarioGrupoRestricaoPK.setOperacaoId(operacao .getId()); usuarioGrupoRestricaoPK.setGrupoId(idGrupo); usuarioGrupoRestricaoPK .setUsuarioId(usuarioAtualizar.getId()); usuarioGrupoRestricao .setComp_id(usuarioGrupoRestricaoPK); usuarioGrupoRestricao .setUltimaAlteracao(new Date()); /* * // registrar transa��o usuarioGrupoRestricao * .setOperacaoEfetuada(operacaoEfetuada); * usuarioGrupoRestricao .adicionarUsuario( * Usuario.USUARIO_TESTE, * UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); * * registradorOperacao * .registrarOperacao(usuarioGrupoRestricao); */ usuarioGrupoRestricao.setUltimaAlteracao(new Date()); // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_CONTROLAR_PERMISSOES_ESPECIAIS, usuarioGrupoRestricao.getComp_id().getFuncionalidadeId(), usuarioGrupoRestricao.getComp_id().getFuncionalidadeId(), new UsuarioAcaoUsuarioHelper(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(usuarioGrupoRestricao); // ------------ REGISTRAR TRANSA��O ---------------- getControladorUtil().inserir( usuarioGrupoRestricao); } } } } } } // caso tenha passado na funcionalidade de permiss�es especiais if (!(permissoesEspeciais == null && permissoesCheckBoxVazias == null)) { /* * Pesquisa todos os usu�rios com permiss�o especial , e remove * todos para ser inseridos os novos usu�rios com permiss�o especial * informados pelo usu�rio */ FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial .adicionarParametro(new ParametroSimples( FiltroUsuarioPemissaoEspecial.USUARIO_COMP_ID, usuarioAtualizar.getId())); Collection colecaoUsuarioPermissaoEspecialCadastradas = getControladorUtil() .pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName()); if (colecaoUsuarioPermissaoEspecialCadastradas != null && !colecaoUsuarioPermissaoEspecialCadastradas.isEmpty()) { Iterator iteratorUsuarioPermissaoEspecial = colecaoUsuarioPermissaoEspecialCadastradas .iterator(); while (iteratorUsuarioPermissaoEspecial.hasNext()) { UsuarioPermissaoEspecial usuarioPermissaoEspecial = (UsuarioPermissaoEspecial) iteratorUsuarioPermissaoEspecial .next(); // registrar transa��o /* * usuarioPermissaoEspecial.setOperacaoEfetuada(operacaoEfetuada); * usuarioPermissaoEspecial.adicionarUsuario( * Usuario.USUARIO_TESTE, * UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); * * registradorOperacao.registrarOperacao(usuarioPermissaoEspecial); */ getControladorUtil().remover(usuarioPermissaoEspecial); } } /* * Caso o usu�rio tenha informado algum usuario permissao especial * que est� sendo atualizado, inseri na tabela usuario permissao * especial */ if (permissoesEspeciais != null && permissoesEspeciais.length != 0) { for (int i = 0; i < permissoesEspeciais.length; i++) { UsuarioPermissaoEspecial usuarioPermissaoEspecial = new UsuarioPermissaoEspecial(); UsuarioPermissaoEspecialPK usuarioPermissaoEspecialPK = new UsuarioPermissaoEspecialPK(); usuarioPermissaoEspecialPK .setPermissaoEspecialId(new Integer( permissoesEspeciais[i])); usuarioPermissaoEspecialPK.setUsuarioId(usuarioAtualizar .getId()); usuarioPermissaoEspecial .setComp_id(usuarioPermissaoEspecialPK); usuarioPermissaoEspecial.setUltimaAlteracao(new Date()); /** * @author Flavio Ferreira * @date 25/05/2010 * * Pesquisa feita para que seja exibido a permissao especial e o usuario na transa��o registrada. * */ FiltroPemissaoEspecial filtroPemissaoEspecial = new FiltroPemissaoEspecial(); filtroPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroPemissaoEspecial.ID, new Integer(permissoesEspeciais[i]))); Collection colecao = getControladorUtil().pesquisar(filtroPemissaoEspecial, PermissaoEspecial.class.getName()); PermissaoEspecial permissaoEspecial = (PermissaoEspecial) Util.retonarObjetoDeColecao(colecao); usuarioPermissaoEspecial.setPermissaoEspecial(permissaoEspecial); usuarioPermissaoEspecial.setUsuario(usuarioAtualizar); // FiltroUsuario filtroUsuario = new FiltroUsuario(); // filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.ID, new Integer(usuarioPermissaoEspecialPK.getUsuarioId()))); // //adicionarParametro(new ParametroSimples(FiltroUsuario.ID, new Integer(usuarioPermissaoEspecialPK))); // // Collection colecaoUsuario = getControladorUtil().pesquisar(filtroUsuario, UsuarioPermissaoEspecial.class.getName()); // PermissaoEspecial permissaoEspecial = (PermissaoEspecial) Util.retonarObjetoDeColecao(colecaoUsuario); /** * FIM */ /* * // registrar transa��o * usuarioPermissaoEspecial.setOperacaoEfetuada(operacaoEfetuada); * usuarioPermissaoEspecial.adicionarUsuario( * Usuario.USUARIO_TESTE, * UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); * * registradorOperacao.registrarOperacao(usuarioPermissaoEspecial); */ // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_USUARIO_CONTROLAR_PERMISSOES_ESPECIAIS, usuarioPermissaoEspecial.getComp_id().getPermissaoEspecialId(), usuarioPermissaoEspecial.getComp_id().getPermissaoEspecialId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(usuarioPermissaoEspecial); // ------------ REGISTRAR TRANSA��O ---------------- getControladorUtil().inserir(usuarioPermissaoEspecial); } } } } /** * [UC0291] Bloquear/Desbloquear Acesso Usuario * * * @author R�mulo Aur�lio * @date 09/06/2006 * * @param usuario * * @throws ControladorException * @throws ErroEmailException */ public void bloquearDesbloquearUsuarioSituacao(Usuario usuario) throws ControladorException { // Verifica se o campo Login foi preenchido if (usuario.getLogin() == null || usuario.getLogin().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ControladorException("atencao.Informe_entidade", null, " Login"); } // Verifica se o campo Usuario Situa��o foi preenchido if (usuario.getUsuarioSituacao() == null || usuario.getUsuarioSituacao().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ControladorException("atencao.Informe_entidade", null, " Situa��o do Usu�rio"); } FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ParametroSimples( FiltroUsuario.LOGIN, usuario.getLogin())); Collection colecaousuario = getControladorUtil().pesquisar( filtroUsuario, Usuario.class.getName()); UsuarioSituacao usuarioSituacao = new UsuarioSituacao(); if (Util.isVazioOrNulo(colecaousuario)) { throw new ControladorException("atencao.login_nao_existente", null, "" + usuario.getLogin() + ""); } //Usuario com situa��o pendente n�o deve ser atualizado Usuario usuarioBase = (Usuario) Util.retonarObjetoDeColecao(colecaousuario); if (usuarioBase.getUsuarioSituacao().getId() == 2) { throw new ControladorException("atencao.usuario_alteracao_senha", null); } // Caso a situcao do usuario selecionada corresponda ao valor "ATIVO", // id da situacao do usuario com o // valor correspondente a "SENHA PENDENTE" na tabela usuario_situacao // envia e-mail para o usuario informando login e senha gerada pelo // sistema if (usuario.getUsuarioSituacao().getId() == 1) { usuarioSituacao.setDescricaoUsuarioSituacao(usuario .getUsuarioSituacao().getDescricaoUsuarioSituacao()); usuarioSituacao.setId(2); usuario.setUsuarioSituacao(usuarioSituacao); // Gera senha aleatoria String senha = Util.geradorSenha(10); usuario.setSenha(senha); EnvioEmail envioEmail = getControladorCadastro().pesquisarEnvioEmail(EnvioEmail.INSERIR_USUARIO); // Envia e-mail para o usuario informando usuario e senha try { ServicosEmail.enviarMensagem(envioEmail.getEmailRemetente(), usuario .getDescricaoEmail(), envioEmail.getTituloMensagem(), "Usu�rio:" + usuario.getLogin() + " \n " + "Senha:" + usuario.getSenha()); } catch (ErroEmailException e) { e.printStackTrace(); } } filtroUsuario.limparListaParametros(); // [FS0003] Verificar nova situa��o de usuario // Verifica se situcaoUsuario atual � igual a nova filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.ID, usuario.getId())); filtroUsuario.adicionarParametro(new ParametroSimples( FiltroUsuario.USUARIO_SITUACAO, usuario.getUsuarioSituacao() .getId().toString())); colecaousuario = getControladorUtil().pesquisar(filtroUsuario, Usuario.class.getName()); if (colecaousuario != null && !colecaousuario.isEmpty()) { throw new ControladorException( "atencao.usuario_situcao_igual_principal", null, "" + usuario.getUsuarioSituacao() .getDescricaoUsuarioSituacao() + ""); } usuario.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(usuario); } // fim /** * M�todo que consulta os grupos do usu�rio * * @author S�vio Luiz * @date 27/06/2006 */ public Collection pesquisarGruposUsuario(Integer idUsuario) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario.pesquisarGruposUsuario(idUsuario); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta os grupos do usu�rio da tabela grupoAcessos * * @author S�vio Luiz * @date 21/02/2007 */ public Collection pesquisarGruposUsuarioAcesso(Collection colecaoUsuarioGrupos)throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario.pesquisarGruposUsuarioAcesso(colecaoUsuarioGrupos); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta as abrang�ncias dos usu�rio pelos os ids das * abrang�ncias superiores e com o id da abrang�ncia diferente do id da * abrang�ncia do usu�rio que est� inserindo(usu�rio logado) * * @author S�vio Luiz * @date 28/06/2006 */ public Collection pesquisarUsuarioAbrangenciaPorSuperior( Collection colecaoUsuarioAbrangencia, Integer idUsuarioAbrangenciaLogado) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario.pesquisarUsuarioAbrangenciaPorSuperior( colecaoUsuarioAbrangencia, idUsuarioAbrangenciaLogado); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * Informa o n�mero total de registros de usuario grupo, auxiliando o * esquema de pagina��o * * @author S�vio Luiz * @date 30/06/2006 * * @param Filtro * da Pesquisa * @param Pacote * do objeto pesquisado * @return N�mero de registros da pesquisa * @throws ErroRepositorioException * Exce��o do reposit�rio */ public int totalRegistrosPesquisaUsuarioGrupo( FiltroUsuarioGrupo filtroUsuarioGrupo) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario .totalRegistrosPesquisaUsuarioGrupo(filtroUsuarioGrupo); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * Informa o n�mero total de registros de usuario grupo, auxiliando o * esquema de pagina��o * * @author S�vio Luiz * @date 30/06/2006 * * @param Filtro * da Pesquisa * @param Pacote * do objeto pesquisado * @return N�mero de registros da pesquisa * @throws ErroRepositorioException * Exce��o do reposit�rio */ public Collection pesquisarUsuariosDosGruposUsuarios( FiltroUsuarioGrupo filtroUsuarioGrupo, Integer numeroPagina) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario.pesquisarUsuariosDosGruposUsuarios( filtroUsuarioGrupo, numeroPagina); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta os grupos funcion�rios opera��es passando os ids dos * grupos * * @author S�vio Luiz * @date 11/07/2006 */ public Collection pesquisarGruposFuncionalidadeOperacoes(Integer[] idsGrupos) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario .pesquisarGruposFuncionalidadesOperacoes(idsGrupos); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta os grupos funcion�rios opera��es passando os ids dos * grupos e o id da funcionalidade * * @author S�vio Luiz * @date 11/07/2006 */ public Collection pesquisarGruposFuncionalidadesOperacoesPelaFuncionalidade( Integer[] idsGrupos, Integer idFuncionalidade) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario .pesquisarGruposFuncionalidadesOperacoesPelaFuncionalidade( idsGrupos, idFuncionalidade); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta os usu�rios restrin��o passando os ids dos grupos , o * id da funcionalidade e o id do usu�rio * * @author S�vio Luiz * @date 11/07/2006 */ public Collection pesquisarUsuarioRestrincao(Integer[] idsGrupos, Integer idFuncionalidade, Integer idUsuario) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario.pesquisarUsuarioRestrincao(idsGrupos, idFuncionalidade, idUsuario); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta as funcionalidades da(s) funcionalidade(s) * princpial(is) * * @author S�vio Luiz * @date 12/07/2006 */ public Collection pesquisarFuncionanidadesDependencia( Collection idsFuncionalidades) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario .pesquisarFuncionanidadesDependencia(idsFuncionalidades); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta as opera��es da(s) funcionalidade(s) * * @author S�vio Luiz * @date 12/07/2006 */ public Collection pesquisarOperacoes(Collection idsFuncionalidades) throws ControladorException { try { // salvando o usuarioGrupo return repositorioUsuario.pesquisarOperacoes(idsFuncionalidades); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta as opera��es da(s) funcionalidade(s) e das * funcionalidades dependencia * * @author S�vio Luiz * @date 12/07/2006 */ public Collection recuperarOperacoesFuncionalidadesEDependentes( Integer idFuncionalidade) throws ControladorException { // cria uma cole��o de funcionalidades principal e inseri o id da // funcionalidade na colle��o Collection funcionalidadesPrincipal = new ArrayList(); funcionalidadesPrincipal.add(idFuncionalidade); // cria uma cole��o de funcionalidades dependencias que retornar� as // funcionalidades dependencias da(s) funcionalidade(s) principal(is) Collection funcionalidadesDependencia = null; Collection idsFuncionalidadesParamOperacoes = new ArrayList(); idsFuncionalidadesParamOperacoes.add(idFuncionalidade); // cria um boolean que vai verificar quando um determinado grupo(ou uma // s�) de funcionalidade(s) n�o tem mais dependencias boolean terminou = false; // caso n�o tenha funcionalidades dependencias ent�o sai do la�o e // pesquisa as opera��es das funcionalidades while (!terminou) { funcionalidadesDependencia = pesquisarFuncionanidadesDependencia(funcionalidadesPrincipal); if (funcionalidadesDependencia != null && !funcionalidadesDependencia.isEmpty()) { idsFuncionalidadesParamOperacoes .addAll(funcionalidadesDependencia); funcionalidadesPrincipal = new ArrayList(); funcionalidadesPrincipal.addAll(funcionalidadesDependencia); } else { terminou = true; } } Collection operacoes = pesquisarOperacoes(idsFuncionalidadesParamOperacoes); return operacoes; } /** * M�todo que marca e desmarca as permiss�es especiais do usu�rio. * * @author S�vio Luiz * @date 12/07/2006 */ public String[] retornarPermissoesMarcadas(Collection permissoesEspeciais) { String[] permissaoEspecial = null; if (permissoesEspeciais != null && !permissoesEspeciais.isEmpty()) { // seta os campos de permiss�o especial no form para // aparecer no // jsp como checado Iterator iteratorPermissaoEspecial = permissoesEspeciais.iterator(); int i = 0; permissaoEspecial = new String[permissoesEspeciais.size()]; while (iteratorPermissaoEspecial.hasNext()) { PermissaoEspecial permissaoEspecialObject = (PermissaoEspecial) iteratorPermissaoEspecial .next(); permissaoEspecial[i] = "" + permissaoEspecialObject.getId(); i = i + 1; } } return permissaoEspecial; } /** * Retorna 2 cole��es e um array ,com os valores que v�o retornar * marcados,uma com as permiss�es do usu�rio que ele possa marcar/desmarcar * e a outra o usu�rio logado n�o vai poder marcar/desmarcar * * [UC0231] - Manter Usu�rio [SB0010] - Selecionar Permiss�es Especiais * (n�2) * * @author S�vio Luiz * @date 13/07/2006 */ public Object[] pesquisarPermissoesEspeciaisUsuarioEUsuarioLogado( Usuario usuarioAtualizar, Usuario usuarioLogado) throws ControladorException { Collection colecaoPermissaoEspecial = new ArrayList(); Collection colecaoPermissaoEspecialDesabilitado = new ArrayList(); String[] idsPermissaoEspecialMarcado = null; Object[] object = new Object[3]; try { // permiss�es especiais do usu�rio que est� sendo atualizado Collection colecaoPermissaoEspecialUsuarioAtualizar = repositorioUsuario .pesquisarPermissaoEspecialUsuario(usuarioAtualizar.getId()); // array com os ids das permiss�es que vai ser checado idsPermissaoEspecialMarcado = retornarPermissoesMarcadas(colecaoPermissaoEspecialUsuarioAtualizar); colecaoPermissaoEspecial .addAll(colecaoPermissaoEspecialUsuarioAtualizar); // pesquisa permiss�es especiais do usu�rio que est� logado Collection colecaoPermissaoEspecialUsuarioLogado = repositorioUsuario .pesquisarPermissaoEspecialUsuario(usuarioLogado.getId()); Collection colecaoPermissaoUsuarioLogadoAux = new ArrayList(); colecaoPermissaoUsuarioLogadoAux .addAll(colecaoPermissaoEspecialUsuarioLogado); colecaoPermissaoUsuarioLogadoAux .removeAll(colecaoPermissaoEspecialUsuarioAtualizar); colecaoPermissaoEspecial.addAll(colecaoPermissaoUsuarioLogadoAux); colecaoPermissaoEspecialUsuarioAtualizar .removeAll(colecaoPermissaoEspecialUsuarioLogado); colecaoPermissaoEspecialDesabilitado .addAll(colecaoPermissaoEspecialUsuarioAtualizar); colecaoPermissaoEspecial .removeAll(colecaoPermissaoEspecialDesabilitado); /* * // pesquisa as permiss�o especial dos usu�rios que n�o v�o // * aparecer marcados Collection * colecaoPermissaoUsuarioLogadoSemMarcado = repositorioUsuario * .pesquisarPermissaoEspecialUsuarioSemPermissoes( * usuarioLogado.getId(), colecaoPermissaoEspecialUsuarioAtualizar); // * adiciona todos os campos na cole��o de permiss�es especiais * colecaoPermissaoEspecial * .addAll(colecaoPermissaoEspecialUsuarioAtualizar); * colecaoPermissaoEspecial * .addAll(colecaoPermissaoUsuarioLogadoSemMarcado); // pesquisa * permiss�es especiais do usu�rio que est� logado Collection * colecaoPermissaoEspecialUsuarioLogado = repositorioUsuario * .pesquisarPermissaoEspecialUsuario(usuarioLogado.getId()); * * Collection colecaoPermissaoUsuarioAtualizarSemMarcado = * repositorioUsuario * .pesquisarPermissaoEspecialUsuarioSemPermissoes( * usuarioAtualizar.getId(), colecaoPermissaoEspecialUsuarioLogado); */ } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } object[0] = colecaoPermissaoEspecial; object[1] = colecaoPermissaoEspecialDesabilitado; object[2] = idsPermissaoEspecialMarcado; return object; } /** * Retorna um map com o indicador dizendo se vai aparecer * marcado(1),desmarcado(2) ou desabilitado(3) para cada opera��o da * funcionalidade escolhida * * [UC0231] - Manter Usu�rio [SB0008] - Selecionar Restrin��es (n�2) * * @author S�vio Luiz * @date 17/07/2006 */ public Map<Integer, Map<Integer, Collection<Operacao>>> organizarOperacoesComValor( Integer codigoFuncionalidade, Map<Integer, Map<Integer, Collection<Operacao>>> funcionalidadeMap, Integer[] idsGrupos, Usuario usuarioAtualizar) throws ControladorException { boolean existeFuncionalidade = false; if (funcionalidadeMap != null && !funcionalidadeMap.isEmpty()) { Collection idsfuncionalidades = funcionalidadeMap.keySet(); Iterator iteratorFuncionalidades = idsfuncionalidades.iterator(); // verifica se existe a funcionalidade escolhida na cole��o de // funcionalidade while (iteratorFuncionalidades.hasNext()) { Integer idfuncionalidade = (Integer) iteratorFuncionalidades .next(); if (idfuncionalidade.equals(new Integer(codigoFuncionalidade))) { existeFuncionalidade = true; } } } // caso n�o exista funcionalidade na cole��o de // gruposFuncionalidades e a cole��o de ids funcionalidades n�o // esteja vazio ent�o pesquisa na base as opera��es que // o usu�rio tem acesso if (!existeFuncionalidade) { // Cria a funcionalidade para ser inserido no map Map<Integer, Collection<Operacao>> operacoesMap = new HashMap(); // pesquisa as opera��es na tabela de // grupoFuncionalidadeOperacao Collection operacoesDaFuncionalidadeGrupo = pesquisarGruposFuncionalidadesOperacoesPelaFuncionalidade( idsGrupos, new Integer(codigoFuncionalidade)); // pesquisa as opera��es na tabela de // UsuarioRestrin��o Collection operacoesUsuarioComRestrincao = pesquisarUsuarioRestrincao( idsGrupos, new Integer(codigoFuncionalidade), usuarioAtualizar.getId()); // remove todas as opera��es do usu�rio com // restrin��o // da // cole��o de opera��es funcionalidade operacoesDaFuncionalidadeGrupo .removeAll(operacoesUsuarioComRestrincao); if (operacoesDaFuncionalidadeGrupo != null && !operacoesDaFuncionalidadeGrupo.isEmpty()) { // coloca as opera��es com o indicador de sele��o igual a // 1(checkbox marcados) operacoesMap.put(1, operacoesDaFuncionalidadeGrupo); } if (operacoesUsuarioComRestrincao != null && !operacoesUsuarioComRestrincao.isEmpty()) { // coloca as opera��es com o indicador de sele��o igual a // 2(checkbox desmarcados) operacoesMap.put(2, operacoesUsuarioComRestrincao); } // recupera as opera��es da tabela grupo funcionalidade opera��o e // da tabela usu�rio restrin��es pesquisadas anteriormente Collection colecaoOperacoesUniao = new ArrayList(); colecaoOperacoesUniao.addAll(operacoesUsuarioComRestrincao); colecaoOperacoesUniao.addAll(operacoesDaFuncionalidadeGrupo); Collection colecaoOperacao = recuperarOperacoesFuncionalidadesEDependentes(new Integer( codigoFuncionalidade)); if (colecaoOperacao != null && !colecaoOperacao.isEmpty()) { Collection operacoesDesabilitados = new ArrayList(); Iterator iteratorOperacoes = colecaoOperacao.iterator(); while (iteratorOperacoes.hasNext()) { Operacao operacao = (Operacao) iteratorOperacoes.next(); // caso n�o exista na cole��o de opera��es pesquisadas // operacoesUsuarioComRestrincao e // operacoesDaFuncionalidadeGrupo ent�o � colocado no map // com o // indicador de sele��o igual a 3(Desabilitado) if (!colecaoOperacoesUniao.contains(operacao)) { operacoesDesabilitados.add(operacao); } } // coloca as opera��es com o indicador de sele��o igual a // 3(checkbox desabilitado) operacoesMap.put(3, operacoesDesabilitados); } // seta o map operacoesMap na map de funcionalidades funcionalidadeMap.put(new Integer(codigoFuncionalidade), operacoesMap); } return funcionalidadeMap; } /** * Retorna um map com o indicador dizendo se vai aparecer * marcado(1),desmarcado(2) ou desabilitado(3) para cada opera��o da * funcionalidade escolhida e a cole��o com as opera��es e funcionalidades * que que foram desmarcados * * [UC0231] - Manter Usu�rio [SB0008] - Selecionar Restrin��es (n�2) * * @author S�vio Luiz * @date 17/07/2006 */ public Map<Integer, Map<Integer, Collection<Operacao>>> recuperaFuncionalidadeOperacaoRestrincao( Integer codigoFuncionalidade, String[] idsOperacoes, Map<Integer, Map<Integer, Collection<Operacao>>> funcionalidadeMap) throws ControladorException { Map<Integer, Collection<Operacao>> operacoesMap = funcionalidadeMap .get(new Integer(codigoFuncionalidade)); // recupera a cole��o de opera��es que est�o com o indicador de sele��o // igual a 1(Marcados) Collection operacoesMarcadas = operacoesMap.get(1); Collection operacoesDesmarcadasMais = new ArrayList(); if (operacoesMarcadas != null && !operacoesMarcadas.isEmpty()) { Iterator iteratorOperacoes = operacoesMarcadas.iterator(); while (iteratorOperacoes.hasNext()) { // cria um boolean que verifica se cada opera��o que tinha o // indicador igual a 1(Marcada) continua marcada,caso contr�rio // remove da cole��o de opera��es marcadas e inseri na cole��o // de // opera��es n�o marcadas. boolean achou = false; Operacao operacao = (Operacao) iteratorOperacoes.next(); if (idsOperacoes != null && !idsOperacoes.equals("")) { for (int i = 0; i < idsOperacoes.length; i++) { if (operacao.getId().equals( new Integer(idsOperacoes[i]))) { achou = true; } } } if (!achou) { operacoesDesmarcadasMais.add(operacao); iteratorOperacoes.remove(); } } } // recupera a cole��o de opera��es que est�o com o indicador de sele��o // igual a 2(Desmarcados) Collection operacoesDesmarcadas = operacoesMap.get(2); Collection operacoesMarcadasMais = new ArrayList(); if (operacoesDesmarcadas != null && !operacoesDesmarcadas.isEmpty()) { Iterator iteratorOperacoesDesmarcadas = operacoesDesmarcadas .iterator(); while (iteratorOperacoesDesmarcadas.hasNext()) { // cria um boolean que verifica se cada opera��o que tinha o // indicador igual a 2(Desmarcada) foi marcada,se sim // remove da cole��o de opera��es desmarcadas e inseri na // cole��o de // opera��es marcadas. boolean achou = false; Operacao operacao = (Operacao) iteratorOperacoesDesmarcadas .next(); if (idsOperacoes != null && !idsOperacoes.equals("")) { for (int i = 0; i < idsOperacoes.length; i++) { if (operacao.getId().equals( new Integer(idsOperacoes[i]))) { achou = true; } } } if (achou) { operacoesMarcadasMais.add(operacao); iteratorOperacoesDesmarcadas.remove(); } } } // adiciona as novas opera��es marcadas na cole��o de opera��es // marcadas. if (operacoesMarcadas != null && !operacoesMarcadas.isEmpty()) { operacoesMarcadas.addAll(operacoesMarcadasMais); } else { if (operacoesMarcadasMais != null && !operacoesMarcadasMais.isEmpty()) { operacoesMarcadas = new ArrayList(); operacoesMarcadas.addAll(operacoesMarcadasMais); operacoesMap.put(1, operacoesMarcadas); } } // adiciona as novas opera��es desmarcadas na cole��o de opera��es // desmarcadas. if (operacoesDesmarcadas != null && !operacoesDesmarcadas.isEmpty()) { operacoesDesmarcadas.addAll(operacoesDesmarcadasMais); } else { if (operacoesDesmarcadasMais != null && !operacoesDesmarcadasMais.isEmpty()) { operacoesDesmarcadas = new ArrayList(); operacoesDesmarcadas.addAll(operacoesDesmarcadasMais); operacoesMap.put(2, operacoesDesmarcadas); } } return funcionalidadeMap; } /** * M�todo que consulta o nome do usu�rio de uma guia de devolu��o, passando * por par�metro o id da guia de devolucao * * @author Daniel Alves * @date 22/02/2010 */ public String pesquisarUsuarioPorGuiaDevolucao(Integer idGuiaDevolucao) throws ControladorException { try { return repositorioUsuario .pesquisarUsuarioPorGuiaDevolucao(idGuiaDevolucao); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0204] Consultar Conta * * @author Vivianne Sousa * @date 16/11/2010 */ public Collection pesquisarUsuario(Integer idOperacao, Integer idImovel,String referenciaConta)throws ControladorException { try { return repositorioUsuario.pesquisarUsuario(idOperacao,idImovel,referenciaConta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0146] Manter Conta * [SB0012] � Determinar compet�ncia de retifica��o de consumo * * @author Vivianne Sousa * @date 16/02/2011 */ public Collection pesquisarGrupoUsuario(Integer idUsuario)throws ControladorException { try { return repositorioUsuario.pesquisarGrupoUsuario(idUsuario); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0146] Manter Conta * [SB0012] � Determinar compet�ncia de retifica��o de consumo * * @author Vivianne Sousa * @date 16/02/2011 */ public BigDecimal pesquisarMaiorCompetenciaRetificacaoGrupo()throws ControladorException { try { return repositorioUsuario.pesquisarMaiorCompetenciaRetificacaoGrupo(); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0230] Inserir Usu�rio * [FS0020] Verificar exist�ncia de usu�rio batch * [FS0021] Verificar usu�rio batch * * @author Paulo Diniz * @throws ControladorException * @date 03/03/2011 */ public Usuario pesquisarUsuarioRotinaBatch() throws ControladorException{ try { return repositorioUsuario.pesquisarUsuarioRotinaBatch(); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0230] Inserir Usu�rio * [FS0022] Verificar exist�ncia de usu�rio internet * [FS0023] Verificar usu�rio internet * * @author Paulo Diniz * @throws ControladorException * @date 03/03/2011 */ public Usuario pesquisarUsuarioInternet() throws ControladorException{ try { return repositorioUsuario.pesquisarUsuarioInternet(); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC1136] Inserir Contrato de Parcelamento por Cliente * Filtra os Usuarios por Id ou Nome para ser utilizado no Autocomplete * * @author Paulo Diniz * @date 04/04/2011 * * @param valor * @throws ControladorException */ public Collection filtrarAutocompleteUsuario(String valor)throws ControladorException{ try { return repositorioUsuario.filtrarAutocompleteUsuario(valor); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } }