package gcom.gui.relatorio.seguranca; import gcom.cadastro.geografico.FiltroRegiaoDesenvolvimento; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroFuncionalidade; import gcom.seguranca.acesso.FiltroGrupo; import gcom.seguranca.acesso.FiltroModulo; import gcom.seguranca.acesso.FiltroOperacao; import gcom.seguranca.acesso.FiltroPermissaoEspecial; import gcom.seguranca.acesso.Funcionalidade; import gcom.seguranca.acesso.Grupo; import gcom.seguranca.acesso.Modulo; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.FiltroUsuario; import gcom.seguranca.acesso.usuario.FiltroUsuarioSituacao; import gcom.seguranca.acesso.usuario.FiltroUsuarioTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioSituacao; import gcom.seguranca.acesso.usuario.UsuarioTipo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * [UC1040] Gerar Relat�rio de Acessos por Usu�rio * * @author Hugo Leonardo * * @date 12/07/2010 */ public class ExibirGerarRelatorioAcessosUsuariosAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirGerarRelatorioAcessosUsuariosAction"); GerarRelatorioAcessosUsuariosActionForm form = (GerarRelatorioAcessosUsuariosActionForm) actionForm; // Primeira vez que carrega a pagina if ( httpServletRequest.getParameter("menu") != null && httpServletRequest.getParameter("menu").equals("sim")) { //form.setSituacaoUsuario("0"); } this.pesquisarUnidadeOrganizacional(httpServletRequest,form); this.pesquisarGrupoAcesso(httpServletRequest,form); this.pesquisarUsuarioSituacao(httpServletRequest,form); if(form.getIdFuncionalidade() != null && !form.getIdFuncionalidade().equals("")){ this.pesquisarOperacoes(httpServletRequest,form); } this.pesquisarUsuarioTipo(httpServletRequest, form); this.pesquisarPermissaoEspecial(httpServletRequest, form); this.pesquisarModulo(httpServletRequest, form); // Seta os request�s encontrados this.setaRequest(httpServletRequest,form); // Pega os codigos que o usuario digitou para a pesquisa direta da funcionalidade if (form.getIdFuncionalidade() != null && !form.getIdFuncionalidade().trim().equals("")) { this.pesquisarFuncionalidade( httpServletRequest, form); } // Pega os codigos que o usuario digitou para a pesquisa direta do Usuario if (form.getIdUsuario() != null && !form.getIdUsuario().trim().equals("")) { this.pesquisarUsuario( httpServletRequest, form); } return retorno; } private void setaRequest(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form){ // Funcionalidade if(form.getIdFuncionalidade() != null && !form.getIdFuncionalidade().equals("") && form.getNomeFuncionalidade() != null && !form.getNomeFuncionalidade().equals("")){ httpServletRequest.setAttribute("funcionalidadeEncontrada","true"); } // Usuario if(form.getIdUsuario() != null && !form.getIdUsuario().equals("") && form.getNomeUsuario() != null && !form.getNomeUsuario().equals("")){ httpServletRequest.setAttribute("usuarioEncontrado","true"); } } private void pesquisarUnidadeOrganizacional(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form){ FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.setConsultaSemLimites(true); filtroUnidadeOrganizacional.setCampoOrderBy(FiltroUnidadeOrganizacional.DESCRICAO); filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUnidadeOrganizacional = this.getFachada().pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeOrganizacional == null || colecaoUnidadeOrganizacional.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Unidade Organizacional"); } else { httpServletRequest.setAttribute("colecaoUnidadeOrganizacional", colecaoUnidadeOrganizacional); } } private void pesquisarGrupoAcesso(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form){ FiltroGrupo filtroGrupo = new FiltroGrupo(); filtroGrupo.setConsultaSemLimites(true); filtroGrupo.setCampoOrderBy(FiltroRegiaoDesenvolvimento.DESCRICAO); filtroGrupo.adicionarParametro( new ParametroSimples(FiltroGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoGrupo = this.getFachada().pesquisar(filtroGrupo, Grupo.class.getName()); if (colecaoGrupo == null || colecaoGrupo.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Grupo de Usuario"); } else { httpServletRequest.setAttribute("colecaoGrupoAcesso", colecaoGrupo); } } private void pesquisarModulo(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form){ FiltroModulo filtroModulo = new FiltroModulo(); // Verifica se os dados foram informados da tabela existem e joga numa colecao Collection<Modulo> colecaoModulo = this.getFachada().pesquisar(filtroModulo, Modulo.class.getName()); if (colecaoModulo == null || colecaoModulo.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Tabela Modulo"); }else{ httpServletRequest.setAttribute("colecaoModulo", colecaoModulo); } } private void pesquisarFuncionalidade(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form) { Fachada fachada = Fachada.getInstancia(); // Pesquisa a funcionalidade na base FiltroFuncionalidade filtroFuncionalidade = new FiltroFuncionalidade(); filtroFuncionalidade.adicionarParametro(new ParametroSimples( FiltroFuncionalidade.ID, form.getIdFuncionalidade())); Collection<Funcionalidade> funcionalidadePesquisada = fachada.pesquisar( filtroFuncionalidade, Funcionalidade.class.getName()); // Se nenhuma funcionalidade for encontrada a mensagem � enviada para a p�gina if (funcionalidadePesquisada != null && !funcionalidadePesquisada.isEmpty()) { Funcionalidade funcionalidade = (Funcionalidade) Util.retonarObjetoDeColecao(funcionalidadePesquisada); form.setIdFuncionalidade("" + funcionalidade.getId()); form.setNomeFuncionalidade( funcionalidade.getDescricao()); } else { form.setIdFuncionalidade(""); form.setNomeFuncionalidade("FUNCIONALIDADE INEXISTENTE"); httpServletRequest.setAttribute("funcionalidadeInexistente",true); httpServletRequest.setAttribute("nomeCampo", "idFuncionalidade"); } } private void pesquisarOperacoes(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form){ FiltroOperacao filtroOperacao = new FiltroOperacao(); filtroOperacao.setConsultaSemLimites(true); filtroOperacao.adicionarParametro( new ParametroSimples( FiltroOperacao.FUNCIONALIDADE, form.getIdFuncionalidade())); filtroOperacao.setCampoOrderBy(FiltroOperacao.DESCRICAO); Collection colecaoOperacao = this.getFachada().pesquisar(filtroOperacao, Operacao.class.getName()); if (colecaoOperacao == null || colecaoOperacao.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Operacao"); } else { httpServletRequest.setAttribute("colecaoOperacao", colecaoOperacao); } } private void pesquisarUsuarioTipo(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form) { FiltroUsuarioTipo filtroUsuarioTipo = new FiltroUsuarioTipo(); filtroUsuarioTipo.setConsultaSemLimites(true); filtroUsuarioTipo.adicionarParametro(new ParametroSimples( FiltroUsuarioTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUsuarioTipo = this.getFachada().pesquisar(filtroUsuarioTipo, UsuarioTipo.class.getName()); if(colecaoUsuarioTipo == null || colecaoUsuarioTipo.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Usu�rio Tipo"); }else{ httpServletRequest.setAttribute("colecaoUsuarioTipo", colecaoUsuarioTipo); } } private void pesquisarUsuario(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form) { Fachada fachada = Fachada.getInstancia(); // Pesquisa a usu�rio na base FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ParametroSimples( FiltroUsuario.ID, form.getIdUsuario())); Collection<Usuario> usuarioPesquisado = fachada.pesquisar( filtroUsuario, Usuario.class.getName()); // Se nenhum usu�rio for encontrado a mensagem � enviada para a p�gina if (usuarioPesquisado != null && !usuarioPesquisado.isEmpty()) { Usuario usuario = (Usuario) Util.retonarObjetoDeColecao(usuarioPesquisado); form.setIdUsuario("" + usuario.getId()); form.setNomeUsuario( usuario.getNomeUsuario()); } else { form.setIdUsuario(""); form.setNomeUsuario("USUARIO INEXISTENTE"); httpServletRequest.setAttribute("usuarioInexistente",true); httpServletRequest.setAttribute("nomeCampo", "idUsuario"); } } private void pesquisarPermissaoEspecial(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form){ FiltroPermissaoEspecial filtroPermissaoEspecial = new FiltroPermissaoEspecial(); filtroPermissaoEspecial.setConsultaSemLimites(true); filtroPermissaoEspecial.setCampoOrderBy(FiltroPermissaoEspecial.DESCRICAO); filtroPermissaoEspecial.adicionarParametro( new ParametroSimples(FiltroPermissaoEspecial.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoPermissaoEspecial = this.getFachada().pesquisar(filtroPermissaoEspecial, PermissaoEspecial.class.getName()); if (colecaoPermissaoEspecial == null || colecaoPermissaoEspecial.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Permissao Especial"); } else { httpServletRequest.setAttribute("colecaoPermissaoEspecial", colecaoPermissaoEspecial); } } private void pesquisarUsuarioSituacao(HttpServletRequest httpServletRequest, GerarRelatorioAcessosUsuariosActionForm form) { FiltroUsuarioSituacao filtroUsuarioSituacao = new FiltroUsuarioSituacao(); filtroUsuarioSituacao.setConsultaSemLimites(true); filtroUsuarioSituacao.adicionarParametro(new ParametroSimples( FiltroUsuarioSituacao.INDICADOR_DE_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUsuarioSituacao = this.getFachada().pesquisar(filtroUsuarioSituacao, UsuarioSituacao.class.getName()); if(colecaoUsuarioSituacao == null || colecaoUsuarioSituacao.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Usu�rio Situa��o"); }else{ httpServletRequest.setAttribute("colecaoUsuarioSituacao", colecaoUsuarioSituacao); } } }