public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Recupera o Funcionário logado Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(getDaoFactory()); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); ActionMessages msg = new ActionMessages(); String txtBusca = request.getParameter("txtBusca"); AjudaCtrl ajudaCtrl = new AjudaCtrl(getDaoFactory()); List lstAjuda = ajudaCtrl.consultaTextoAjuda(funcionario, txtBusca); // Se não encontrou resultado, coloca mensagem if (lstAjuda.isEmpty()) { msg.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.ajuda.consulta")); saveMessages(request, msg); } request.setAttribute("lstAjuda", lstAjuda); return mapping.findForward("success"); }
/** * Método de execução da ação. Realiza dois forwards: um em caso de sucesso e outro em caso de * falha * * @param mapping * @param form ActionForm, caso necessário * @param request * @param response */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionMessages msgs = new ActionMessages(); Orgao orgao = this.getOrgao(request); Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(getDaoFactory()); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); ListarAcionamentoRespostaCtrl controle = new ListarAcionamentoRespostaCtrl(getDaoFactory()); String numeroProtocolo = ((DynaActionForm) form).getString("numeroProtocolo"); String enviados = ((DynaActionForm) form).getString("enviado"); String naoEnviados = ((DynaActionForm) form).getString("naoEnviado"); String meioEnvioResposta = ((DynaActionForm) form).getString("meioEnvioResposta"); Collection acionamentos = null; if (numeroProtocolo != null && numeroProtocolo.trim().length() > 0) { try { Acionamento acnmnt = controle.getAcionamentoPeloProtocolo(orgao, funcionario, numeroProtocolo); if (acnmnt != null) { acionamentos = new ArrayList(); acionamentos.add(acnmnt); } } catch (Exception a) { msgs.add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.listarAcionamentoResposta.protocolo.invalido")); } } else { String situacao = null; if ((enviados == null || enviados.trim().length() == 0) && naoEnviados != null) { situacao = EstadoAcionamento.RESPONDIDO.getId().toString(); } else if (enviados != null && (naoEnviados == null || naoEnviados.trim().length() == 0)) { situacao = EstadoAcionamento.ENVIADO.getId().toString(); } acionamentos = controle.listarAcionamentos(orgao, funcionario, meioEnvioResposta, situacao); } request.setAttribute("numeroProtocolo", numeroProtocolo); request.setAttribute("meioEnvioResposta", meioEnvioResposta); request.setAttribute("enviado", enviados); request.setAttribute("naoEnviado", naoEnviados); request.setAttribute("listarAcionamentos", acionamentos); if (msgs.isEmpty()) { return (mapping.findForward("success")); } saveErrors(request, msgs); return (mapping.findForward("error")); }
public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ExibirMensagemGenericaCtrl exibirMensagemGenericaCtrl = new ExibirMensagemGenericaCtrl(getDaoFactory()); ActionErrors errors = new ActionErrors(); String texto = ""; if (request.getParameter("tela").compareToIgnoreCase("CanaisComunicacao") == 0) { texto = this.getOrgao(request).getConfiguracoes().getTextoCanaisComunicacaoFormatado(); } if (request.getParameter("tela").compareToIgnoreCase("Legislacao") == 0) { texto = this.getOrgao(request).getConfiguracoes().getTextoLegislacaoOuvidoriaFormatado(); } if (request.getParameter("tela").compareToIgnoreCase("ResultadosOuvidoria") == 0) { texto = this.getOrgao(request).getConfiguracoes().getTextoInformacaoOuvidoriaFormatado(); } if (request.getParameter("tela").compareToIgnoreCase("TiposMensagem") == 0) { List lista = this.getOrgao(request).listarTipoMensagemAtivos(); TipoMensagem tipoMensagem; Iterator iter = lista.iterator(); int i = 2; while (iter.hasNext()) { tipoMensagem = (TipoMensagem) iter.next(); texto += "<h2 tabindex=" + i + "> " + tipoMensagem.getDescricao() + "</h2>"; i++; texto += "<p tabindex=" + i + ">" + tipoMensagem.getDescricaoDetalhada() + "</p>"; i++; } } if (request.getParameter("tela").compareToIgnoreCase("TiposAssunto") == 0) { List lista = this.getOrgao(request).getListaAssuntosSubOrgaos(); Assunto assunto; Iterator iter = lista.iterator(); int i = 2; while (iter.hasNext()) { assunto = (Assunto) iter.next(); texto += "<h2 tabindex=" + i + "> " + assunto.getDescricao() + "</h2>"; i++; texto += "<p tabindex=" + i + ">" + assunto.getDescricaoDetalhada() + "</p>"; i++; } } if (request.getParameter("tela").compareToIgnoreCase("InformacoesOuvidoria") == 0) { texto += "<a tabindex=2 title='Legislação' href='../ExibirMensagemGenerica.do?titulo=Legislação&tela=Legislacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Legislação</font></a><br>"; texto += "<a tabindex=3 title='Tipos de Mensagem' href='../ExibirMensagemGenerica.do?titulo=Tipos de Mensagem&tela=TiposMensagem' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Mensagem</font></a><br>"; texto += "<a tabindex=4 title='Tipos de Assunto' href='../ExibirMensagemGenerica.do?titulo=Tipos de Assunto&tela=TiposAssunto' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Assunto</font></a><br>"; texto += "<a tabindex=5 title='Resultados da Ouvidoria' href='../ExibirResultadoOuvidoria.do?titulo=Resultados%20da%20Ouvidoria' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Resultados da Ouvidoria</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("FaleOuvidoria") == 0) { texto += "<a tabindex=2 title='Acionamento' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Acionamento</font></a></label><br>"; texto += "<a tabindex=3 title='Outros Canais de Comunicação' href='../ExibirMensagemGenerica.do?titulo=Outros Canais de Comunicação&tela=CanaisComunicacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Outros Canais de Comunicação</font></a><br>"; } if (request.getParameter("funcionalidade") != null) { Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(getDaoFactory()); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); if (funcionario == null) { return mapping.findForward(Constants.LOGIN_FORWARD); } Funcionalidade funcionalidade = exibirMensagemGenericaCtrl.getFuncionalidade( new Integer(request.getParameter("funcionalidade"))); List subFuncionalidades = exibirMensagemGenericaCtrl.getSubMenu(funcionario, funcionalidade); Iterator iter; iter = subFuncionalidades.iterator(); int i = 2; while (iter.hasNext()) { funcionalidade = (Funcionalidade) iter.next(); texto += "<font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> <a tabindex=" + i + " title='" + funcionalidade.getDescricao() + "' href='.." + funcionalidade.getPath() + "'" + " target='conteudo'> " + funcionalidade.getDescricao() + "</a></font><br>"; i++; } } if (request.getParameter("tela").compareToIgnoreCase("AjudaInternet") == 0) { texto += "<a tabindex=2 title='Tópicos da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Tópicos de Ajuda</font></a><br>"; texto += "<a tabindex=3 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteInternet' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("AjudaIntranet") == 0) { texto += "<a tabindex=2 title='Tópicos da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Tópicos de Ajuda</font></a><br>"; texto += "<a tabindex=3 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteIntranet' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("AjudaLogado") == 0) { texto += "<a tabindex=2 title='Tópicos da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Tópicos de Ajuda</font></a><br>"; texto += "<a tabindex=3 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteLogado' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("MapaSiteInternet") == 0) { texto += "<a tabindex=2 title='Sistema Ouvidoria' href='../Main.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Sistema Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Fale com a Ouvidoria' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Fale com a Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Acionamento' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Acionamento</font></a><br>"; texto += "<a tabindex=3 title='Outros Canais de Comunicação' href='../ExibirMensagemGenerica.do?titulo=Outros Canais de Comunicação&tela=CanaisComunicacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Outros Canais de Comunicação</font></a><br>"; texto += "<a tabindex=4 title='Consulte sua Resposta' href='../andamento/ConsultarResposta.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Consulte sua Resposta</font></a><br>"; texto += "<a tabindex=5 title='Informações da Ouvidoria' href='../ExibirMensagemGenerica.do?titulo=Informações da Ouvidoria&tela=InformacoesOuvidoria' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Informações da Ouvidoria</font></a><br>"; texto += "<a tabindex=6 title='Legislação' href='../ExibirMensagemGenerica.do?titulo=Legislação&tela=Legislacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Legislação</font></a><br>"; texto += "<a tabindex=7 title='Tipos de Mensagem' href='../ExibirMensagemGenerica.do?titulo=Tipos de Mensagem&tela=TiposMensagem' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Mensagem</font></a><br>"; texto += "<a tabindex=8 title='Tipos de Assunto' href='../ExibirMensagemGenerica.do?titulo=Tipos de Assunto&tela=TiposAssunto' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Assunto</font></a><br>"; texto += "<a tabindex=9 title='Resultados da Ouvidoria' href='../ExibirResultadoOuvidoria.do?titulo=Resultados%20da%20Ouvidoria' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Resultados da Ouvidoria</font></a><br>"; texto += "<a tabindex=10 title='Ajuda' href='../ExibirMensagemGenerica.do?titulo=Ajuda&tela=AjudaInternet' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Ajuda</font></a><br>"; texto += "<a tabindex=11 title='Tópico da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tópicos da Ajuda</font></a><br>"; texto += "<a tabindex=12 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteInternet' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("MapaSiteIntranet") == 0) { texto += "<a tabindex=2 title='Sistema Ouvidoria' href='../Main.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Sistema Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Fale com a Ouvidoria' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Fale com a Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Acionamento' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Acionamento</font></a><br>"; texto += "<a tabindex=3 title='Outros Canais de Comunicação' href='../ExibirMensagemGenerica.do?titulo=Outros Canais de Comunicação&tela=CanaisComunicacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Outros Canais de Comunicação</font></a><br>"; texto += "<a tabindex=4 title='Consulte sua Resposta' href='../andamento/ConsultarResposta.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Consulte sua Resposta</font></a><br>"; texto += "<a tabindex=5 title='Informações da Ouvidoria' href='../ExibirMensagemGenerica.do?titulo=Informações da Ouvidoria&tela=InformacoesOuvidoria' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Informações da Ouvidoria</font></a><br>"; texto += "<a tabindex=6 title='Legislação' href='../ExibirMensagemGenerica.do?titulo=Legislação&tela=Legislacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Legislação</font></a><br>"; texto += "<a tabindex=7 title='Tipos de Mensagem' href='../ExibirMensagemGenerica.do?titulo=Tipos de Mensagem&tela=TiposMensagem' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Mensagem</font></a><br>"; texto += "<a tabindex=8 title='Tipos de Assunto' href='../ExibirMensagemGenerica.do?titulo=Tipos de Assunto&tela=TiposAssunto' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Assunto</font></a><br>"; texto += "<a tabindex=9 title='Resultados da Ouvidoria' href='../ExibirResultadoOuvidoria.do?titulo=Resultados%20da%20Ouvidoria' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Resultados da Ouvidoria</font></a><br>"; texto += "<a tabindex=10 title='Ajuda' href='../ExibirMensagemGenerica.do?titulo=Ajuda&tela=AjudaIntranet' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Ajuda</font></a><br>"; texto += "<a tabindex=11 title='Tópico da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tópicos da Ajuda</font></a><br>"; texto += "<a tabindex=12 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteIntranet' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("MapaSiteLogado") == 0) { Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(getDaoFactory()); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); if (funcionario == null) { return mapping.findForward(Constants.LOGIN_FORWARD); } Funcionalidade funcionalidade; Funcionalidade funcionalidadeSub; List lista = exibirMensagemGenericaCtrl.getMenu(funcionario); Collection listaSubItem = new ArrayList(); class FuncionalidadeComparator implements Comparator { public final int compare(Object a, Object b) { return (((Funcionalidade) a).getOrdemItemMenu()) .compareTo((((Funcionalidade) b).getOrdemItemMenu())); } // end compare } // end class StringComparator Collections.sort(lista, new FuncionalidadeComparator()); Iterator iter; Iterator iter2; iter = lista.iterator(); texto += "<a tabindex=2 title='Sistema Ouvidoria' href='../Main.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Sistema Ouvidoria</font></a><br>"; int i = 3; while (iter.hasNext()) { funcionalidade = (Funcionalidade) iter.next(); if (funcionalidade.getListaSubItemMenu(funcionario).size() > 0) { texto += "<a tabindex=" + i + " title='" + funcionalidade.getDescricao() + "'" + " href='.." + funcionalidade.getPath() + "'" + " target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> " + funcionalidade.getDescricao() + "</font></a><br>"; i++; listaSubItem = funcionalidade.getListaSubItemMenu(funcionario); iter2 = listaSubItem.iterator(); while (iter2.hasNext()) { funcionalidadeSub = (Funcionalidade) iter2.next(); texto += "<a tabindex=" + i + " title='" + funcionalidadeSub.getDescricao() + "'" + " href='.." + funcionalidadeSub.getPath() + "'" + " target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> " + funcionalidadeSub.getDescricao() + "</font></a><br>"; i++; } } else { texto += "<a tabindex=" + i + " title='" + funcionalidade.getDescricao() + "'" + " href='.." + funcionalidade.getPath() + "'" + " target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> " + funcionalidade.getDescricao() + "</font></a><br>"; i++; } } } if (request.getParameter("tela").equalsIgnoreCase("Ajuda")) { texto = request.getParameter("texto"); } request.setAttribute("titulo", request.getParameter("titulo")); request.setAttribute("texto", texto); if (errors.isEmpty()) { return (mapping.findForward("success")); } return (mapping.findForward("failure")); }
protected boolean processRoles( HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws IOException, ServletException { String role = null; ArrayList regras = new ArrayList(); /* * Trecho responsável por pegar as regras de acesso definidas no Struts * Este tratamento foi feito para permitir/restringir acesso a mais de * uma opção por url. No caso Reclassificar Assunto e Mensagem através * da url reclassificar */ if (mapping.getRoles() != null) { String[] roles = mapping.getRoles().split(","); for (int cont = 0; cont < roles.length; cont++) { try { new Long(roles[cont]); } catch (Exception e) { e.printStackTrace(); throw new ServletException("Código de regra de acesso inválido."); } regras.add(roles[cont]); role = (String) regras.get(0); // Pega a primeira regra(role) } } OrgaoCtrl orgaoCtrl = new OrgaoCtrl(daoFactory); /* Não existe bloqueio para esta acão */ if (role == null || role.trim().length() == 0) { return true; } request.setAttribute(Constants.SR_FUNCIONALIDADE, role); /*Coloca a funcionalidade na sessão para * ser recuperada na tela de ajuda */ request.getSession().setAttribute(Constants.SR_FUNCIONALIDADE, role); ControleAcessoCtrl controleAcessoCtrl = new ControleAcessoCtrl(daoFactory); Orgao orgao = orgaoCtrl.get((String) request.getSession().getAttribute(Constants.ID_SESSAO_ORGAO)); /* verifico a vigência do órgão para acionamento e consulta resposta */ String redirect = null; int vigenciaOrgao = controleAcessoCtrl.verificaVigenciaOrgao(orgao, role); switch (vigenciaOrgao) { case ControleAcessoCtrl.VG_FORA_PERIODO_ACIONAMENTO: redirect = Constants.CAD_ACNMNT_FORA_VIGENCIA_PAGE; break; case ControleAcessoCtrl.VG_FORA_PERIODO_CONSULTA_RESPOSTA: redirect = Constants.CON_RESPTA_FORA_VIGENCIA_PAGE; break; case ControleAcessoCtrl.VG_FORA_PERIODO_OPERACAO: redirect = Constants.CAD_OPERACAO_FORA_VIGENCIA_PAGE; break; default: // DO NOTHING } if (redirect != null) { controleAcessoCtrl = null; /* retiro o controle do struts */ doForward(redirect, request, response); return false; } /* verifico o acesso do funcionario ao sistema */ int possuiAcesso = ControleAcessoCtrl.CA_NECESSARIO_LOGIN; try { Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(daoFactory); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); possuiAcesso = controleAcessoCtrl.permiteAcesso(orgao, funcionario, regras); } catch (DaoException e) { System.out.println(e.getMessage()); e.printStackTrace(); throw new ServletException(e); } redirect = Constants.LOGIN_ACTION; switch (possuiAcesso) { case ControleAcessoCtrl.CA_ACESSO_PERMITIDO: request.getSession().setAttribute(Constants.SR_FUNCIONALIDADES, regras); return true; case ControleAcessoCtrl.CA_ACESSO_NEGADO: redirect = Constants.DENIED_ACCESS_ACTION; break; case ControleAcessoCtrl.CA_NECESSARIO_LOGIN: redirect = Constants.LOGIN_ACTION; break; case ControleAcessoCtrl.VG_FORA_PERIODO_OPERACAO: redirect = Constants.CAD_OPERACAO_FORA_VIGENCIA_PAGE; break; default: redirect = Constants.LOGIN_ACTION; } controleAcessoCtrl = null; /* retiro o funcionario da sessão */ request.getSession().removeAttribute(Constants.PA_FUNCIONARIO); /* retiro o controle do struts */ doForward(redirect, request, response); return false; }