package br.com.centralit.citcorpore.util; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspWriter; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.InformacoesContratoItem; import br.com.centralit.citcorpore.bean.PerfilAcessoMenuDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.EmpregadoService; import br.com.centralit.citcorpore.negocio.PerfilAcessoMenuService; import br.com.citframework.dto.Usuario; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.Reflexao; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; public class WebUtil { public static void setUsuario(final UsuarioDTO usuario, final HttpServletRequest request) { request.getSession().setAttribute(Constantes.getValue("USUARIO_SESSAO") + "_CITCORPORE", usuario); } public static void setLocale(final String locale, final HttpServletRequest request) { request.getSession().setAttribute("locale", locale); } public static UsuarioDTO getUsuario(final HttpServletRequest request) { final UsuarioDTO user = (UsuarioDTO) request.getSession().getAttribute(Constantes.getValue("USUARIO_SESSAO") + "_CITCORPORE"); return user; } public static br.com.citframework.dto.Usuario getUsuarioSistema(final HttpServletRequest request) throws Exception { final br.com.citframework.dto.Usuario usr = new Usuario(); final UsuarioDTO usuario = (UsuarioDTO) request.getSession().getAttribute(Constantes.getValue("USUARIO_SESSAO") + "_CITCORPORE"); if (usuario != null) { if (request.getSession().getAttribute("locale") != null && !request.getSession().getAttribute("locale").equals("")) { usuario.setLocale((String) request.getSession().getAttribute("locale")); } else { /** * Se n�o tive uma l�ngua definida, seta como portugu�s * * @author thyen.chang * @since 04/02/2015 */ usuario.setLocale(UtilI18N.PORTUGUESE_SIGLA); } Reflexao.copyPropertyValues(usuario, usr); } else { return null; } return usr; } public static boolean isUserInGroup(final HttpServletRequest req, final String grupo) { final UsuarioDTO usuario = WebUtil.getUsuario(req); if (usuario == null) { return false; } final String[] grupos = usuario.getGrupos(); final String grpAux = UtilStrings.nullToVazio(grupo); for (final String grupo2 : grupos) { if (grupo2 != null) { if (grupo2.trim().equalsIgnoreCase(grpAux.trim())) { return true; } } } return false; } @SuppressWarnings("rawtypes") public static void renderizaFilhos(final InformacoesContratoItem itemProntuario, final JspWriter out) throws IOException { if (itemProntuario.getColSubItens() == null) { return; } out.print("<div id='divMenu_" + itemProntuario.getNome() + "' style='display:none'>"); final Iterator it = itemProntuario.getColSubItens().iterator(); InformacoesContratoItem itemProntuarioTemp; for (; it.hasNext();) { itemProntuarioTemp = (InformacoesContratoItem) it.next(); final boolean subItens = itemProntuarioTemp.getColSubItens() != null && itemProntuarioTemp.getColSubItens().size() > 0; out.print("<table width='100%'>"); out.print("<tr id='trITEMMENU_" + itemProntuarioTemp.getNome() + "'>"); out.print("<td width='10%'> </td>"); out.print("<td id='tdITEMMENU_" + itemProntuarioTemp.getNome() + "' style='cursor:pointer' class='bordaNaoSelecionaProntuario' onclick=\"setaAbaSelecionada('" + itemProntuarioTemp.getNome() + "', " + subItens + ", '" + itemProntuarioTemp.getPath() + "', 'tdITEMMENU_" + itemProntuarioTemp.getNome() + "')\">"); out.print(itemProntuarioTemp.getDescricao()); WebUtil.renderizaFilhos(itemProntuarioTemp, out); out.print("</td>"); out.print("</tr>"); out.println("<script>arrayItensMenu[iItemMenu] = 'tdITEMMENU_" + itemProntuarioTemp.getNome() + "';</script>"); out.println("<script>iItemMenu++;</script>"); out.print("<tr><td style='height:5px'></td></tr>"); out.print("</table>"); } out.print("</div>"); } @SuppressWarnings("rawtypes") public static void renderizaFilhosSomenteQuestionarios(final InformacoesContratoItem itemProntuario, final JspWriter out) throws IOException { if (itemProntuario.getColSubItens() == null) { return; } out.print("<div id='divMenu2_" + itemProntuario.getNome() + "' style='display:none'>"); final Iterator it = itemProntuario.getColSubItens().iterator(); InformacoesContratoItem itemProntuarioTemp; for (; it.hasNext();) { itemProntuarioTemp = (InformacoesContratoItem) it.next(); if (!UtilStrings.nullToVazio(itemProntuarioTemp.getFuncItem()).equalsIgnoreCase("1")) { continue; } final boolean subItens = itemProntuarioTemp.getColSubItens() != null && itemProntuarioTemp.getColSubItens().size() > 0; out.print("<table width='100%'>"); out.print("<tr id='trITEMMENU2_" + itemProntuarioTemp.getNome() + "'>"); out.print("<td width='10%'> </td>"); out.print("<td id='tdITEMMENU2_" + itemProntuarioTemp.getNome() + "' style='cursor:pointer' class='bordaNaoSelecionaProntuario' onclick=\"setaAbaSel2('" + itemProntuarioTemp.getNome() + "', " + subItens + ", '" + itemProntuarioTemp.getPath() + "', 'tdITEMMENU2_" + itemProntuarioTemp.getNome() + "', false, '" + itemProntuarioTemp.getIdQuestionario() + "')\">"); out.print(itemProntuarioTemp.getDescricao()); WebUtil.renderizaFilhosSomenteQuestionarios(itemProntuarioTemp, out); out.print("</td>"); out.print("</tr>"); out.println("<script>arrayItensMenu2[iItemMenu] = 'tdITEMMENU2_" + itemProntuarioTemp.getNome() + "';</script>"); out.println("<script>iItemMenu2++;</script>"); out.print("<tr><td style='height:5px'></td></tr>"); out.print("</table>"); } out.print("</div>"); } /** * Retorna o Id da Empresa. * * @param request * @return */ public static Integer getIdEmpresa(final HttpServletRequest req) { final UsuarioDTO usuario = WebUtil.getUsuario(req); return usuario.getIdEmpresa(); } public static EmpregadoDTO getColaborador(final HttpServletRequest req) throws Exception { final UsuarioDTO user = (UsuarioDTO) req.getSession().getAttribute(Constantes.getValue("USUARIO_SESSAO") + "_CITCORPORE"); final EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null); return empregadoService.restoreByIdEmpregado(user.getIdEmpregado()); } /** * Valida se usuario esta ativo na sessao * * @param request * @return true:usuario esta na sess�o || false:usuario n�o esta na sess�o */ public static Boolean usuarioEstaNaSessao(final HttpServletRequest request) { if (WebUtil.getUsuario(request) == null) { return false; } return true; } /** * Valida se o usuario esta na sess�o, podendo direcionar o formulario para tela de login * * @param request * @param document * @return true: usuario est� na sessao || * false: usuario n�o esta na sessao e a tela � redirecionada para a tela de login */ public static Boolean validarSeUsuarioEstaNaSessao(final HttpServletRequest request, final DocumentHTML document) { if (!usuarioEstaNaSessao(request)) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return false; } return true; } /** * Retorna Linguagem do session do request. * * @param request * @return String - language * @author valdoilo.damasceno * @since 04.02.2014 */ public static String getLanguage(final HttpServletRequest request) { String language = UtilI18N.PORTUGUESE_SIGLA; if (request != null && request.getSession() != null && request.getSession().getAttribute("locale") != null) { language = (String) request.getSession().getAttribute("locale"); } return language.trim(); } /** * Retorna um n�mero inteiro aleat�rio. M�todo pode ser utilizado para a gera��o do nome de relat�rio. * * @return int - N�mero aleat�rio. * @author valdoilo.damasceno */ public static int getRandomNumber() { final Random gerador = new Random(); return gerador.nextInt(); } /** * Obt�m lista de PerfilAcessoMenu do menu que o usu�rio est� tentando acessar * * @author thyen.chang * @since 28/01/2015 - OPERA��O USAIN BOLT * @param request * @param usuario * @param idMenu * @return * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public static List<PerfilAcessoMenuDTO> getPerfilAcessoUsuarioByMenu(final HttpServletRequest request, final UsuarioDTO usuario, final Integer idMenu) throws ServiceException, Exception { Map<Integer, List<PerfilAcessoMenuDTO>> mapaPerfilAcessoUsuario = (Map<Integer, List<PerfilAcessoMenuDTO>>) request.getSession().getAttribute( Constantes.getValue("USUARIO_SESSAO") + "_PERFILACESSOMENU_CITCORPORE"); if (mapaPerfilAcessoUsuario == null) { final PerfilAcessoMenuService perfilAcessoMenuService = (PerfilAcessoMenuService) ServiceLocator.getInstance().getService(PerfilAcessoMenuService.class, null); mapaPerfilAcessoUsuario = perfilAcessoMenuService.getPerfilAcessoBotoesMenu(usuario); request.getSession().setAttribute(Constantes.getValue("USUARIO_SESSAO") + "_PERFILACESSOMENU_CITCORPORE", mapaPerfilAcessoUsuario); } return mapaPerfilAcessoUsuario.get(idMenu); } }