package br.com.centralit.citcorpore.ajaxForms; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Locale; import javax.naming.InitialContext; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.sql.DataSource; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLForm; import br.com.centralit.citcorpore.bean.ADUserDTO; import br.com.centralit.citcorpore.bean.BaseDTO; import br.com.centralit.citcorpore.bean.EmailDTO; import br.com.centralit.citcorpore.bean.EmpresaDTO; import br.com.centralit.citcorpore.bean.GedDTO; import br.com.centralit.citcorpore.bean.GeralDTO; import br.com.centralit.citcorpore.bean.ICDTO; import br.com.centralit.citcorpore.bean.InstalacaoDTO; import br.com.centralit.citcorpore.bean.LdapDTO; import br.com.centralit.citcorpore.bean.LogDTO; import br.com.centralit.citcorpore.bean.ParametroCorporeDTO; import br.com.centralit.citcorpore.bean.ReleaseDTO; import br.com.centralit.citcorpore.bean.SmtpDTO; import br.com.centralit.citcorpore.bean.StartDTO; import br.com.centralit.citcorpore.bean.UploadDTO; import br.com.centralit.citcorpore.integracao.ad.LDAPUtils; import br.com.centralit.citcorpore.metainfo.bean.VisaoDTO; import br.com.centralit.citcorpore.metainfo.negocio.VisaoService; import br.com.centralit.citcorpore.negocio.DataBaseMetaDadosService; import br.com.centralit.citcorpore.negocio.EmpresaService; import br.com.centralit.citcorpore.negocio.InstalacaoService; import br.com.centralit.citcorpore.negocio.MenuService; import br.com.centralit.citcorpore.negocio.ParametroCorporeService; import br.com.centralit.citcorpore.negocio.ScriptsService; import br.com.centralit.citcorpore.negocio.VersaoService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema; import br.com.centralit.citcorpore.util.FiltroSegurancaCITSmart; import br.com.centralit.citcorpore.util.ParametroUtil; import br.com.centralit.citcorpore.util.WebUtil; import br.com.centralit.citgerencial.util.Util; import br.com.citframework.excecao.ServiceException; import br.com.citframework.integracao.ConnectionProvider; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.SQLConfig; import br.com.citframework.util.ScriptRunner; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; import br.com.citframework.util.XmlReadLookup; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; /** * Controller da p�gina de instala��o do sistema * * @author flavio.santana * */ public class Start extends AjaxFormAction { private final String DEFAULT = ""; @Override public void load(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final String sessao = (String) request.getSession().getAttribute("passoInstalacao"); if (sessao != null) { document.executeScript("setNext('" + sessao + "')"); this.carregaEmail(document, request, response); this.carregaEmpresa(document, request, response); this.carregaParametrosLDAP(document, request, response); this.carregaGED(document, request, response); this.carregaLog(document, request, response); this.carregaSMTP(document, request, response); /** * Se vers�o free n�o carrega parametros de IC */ if (!br.com.citframework.util.Util.isVersionFree(request)) { this.carregaParametrosIC(document, request, response); } this.carregaParametrosBase(document, request, response); this.carregaParametrosGerais(document, request, response); } else { this.reload(document, request, null); } } /** * Gera carga inicial do banco * * @throws Exception * @throws ServiceException */ public void gerarCargaInicial(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO start = (StartDTO) document.getBean(); final String sessao = (String) request.getSession().getAttribute("passoInstalacao"); if (this.verificaParametrosConexao(document, request, response)) { try (Connection conn = ConnectionProvider.getConnection(Constantes.getValue("DATABASE_ALIAS"))) { if (sessao == null) { this.setSession(request, start.getCurrent()); final ScriptRunner runner = new ScriptRunner(conn, true, true); runner.setDelimiter("(;(\r)?\n)|(--\n)", false); try { runner.runScript(new File(CITCorporeUtil.CAMINHO_REAL_APP + "/scripts_deploy/" + conn.getMetaData().getDatabaseProductName().replaceAll(" ", "_") + ".sql")); } catch (final Exception er) {} /** * Mata da sess�o o parametro de instala��o */ final ServletContext context = request.getSession().getServletContext(); context.setAttribute("instalacao", null); this.reload(document, request, null); } else { this.carregaEmpresa(document, request, response); document.executeScript("setNext('" + start.getCurrent() + "')"); } } catch (final Exception e) { this.setSession(request, null); } } else { document.alert(UtilI18N.internacionaliza(request, "start.instalacao.validaConexao")); document.executeScript("habilitaInstall();"); } } /** * Verifica o status da conex�o * * @throws SQLException */ public boolean verificaParametrosConexao(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final StartDTO conexao = (StartDTO) document.getBean(); final Connection conn = ConnectionProvider.getConnection(Constantes.getValue("DATABASE_ALIAS")); if (conn.getMetaData().getDatabaseProductName().equalsIgnoreCase(conexao.getDriverConexao())) { conn.close(); return true; } return false; } /** * Infoma��es iniciais de configura��o da Empresa * * @throws Exception * @throws ServiceException */ public void cadastraEmpresa(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO start = (StartDTO) document.getBean(); final EmpresaDTO empresaDTO = new EmpresaDTO(); final EmpresaService empresaService = (EmpresaService) ServiceLocator.getInstance().getService(EmpresaService.class, null); if ("".equals(start.getNomeEmpresa()) || "Default".equals(start.getNomeEmpresa().trim())) { document.alert(UtilI18N.internacionaliza(request, "start.instalacao.validaEmpresa")); document.executeScript("document.frmEmpresa.nomeEmpresa.focus()"); } else { empresaDTO.setIdEmpresa(1); // Definindo o id padr�o da carga empresaDTO.setNomeEmpresa(start.getNomeEmpresa()); empresaDTO.setDetalhamento(start.getDetalhamento()); empresaDTO.setDataInicio(UtilDatas.getDataAtual()); empresaService.update(empresaDTO); this.setSession(request, start.getCurrent()); document.executeScript("setNext('" + start.getCurrent() + "')"); this.carregaParametrosLDAP(document, request, response); } } /** * Carrega as informa��es de empresa * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaEmpresa(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final EmpresaService empresaService = (EmpresaService) ServiceLocator.getInstance().getService(EmpresaService.class, null); EmpresaDTO empresaDTO = new EmpresaDTO(); empresaDTO.setIdEmpresa(1); empresaDTO = (EmpresaDTO) empresaService.restore(empresaDTO); final HTMLForm form = document.getForm("frmEmpresa"); if (empresaDTO != null) { form.setValues(empresaDTO); } } /** * Carrega os paramatros do LDAP * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaParametrosLDAP(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosLdap()"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_URL.id() + ",'" + this.escape(Enumerados.ParametroSistema.LDAP_URL.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAP_URL) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.DOMINIO_AD.id() + ",'" + this.escape(Enumerados.ParametroSistema.DOMINIO_AD.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.DOMINIO_AD) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_SUBDOMINIO.id() + ",'" + this.escape(Enumerados.ParametroSistema.LDAP_SUBDOMINIO.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAP_SUBDOMINIO) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAD_SUFIXO_DOMINIO.id() + ",'" + this.escape(Enumerados.ParametroSistema.LDAD_SUFIXO_DOMINIO.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAD_SUFIXO_DOMINIO) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LOGIN_AD.id() + ",'" + this.escape(Enumerados.ParametroSistema.LOGIN_AD.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LOGIN_AD) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.SENHA_AD.id() + ",'" + this.escape(Enumerados.ParametroSistema.SENHA_AD.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.SENHA_AD) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_FILTRO.id() + ",'" + this.escape(Enumerados.ParametroSistema.LDAP_FILTRO.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAP_FILTRO) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_ATRIBUTO.id() + ",'" + this.escape(Enumerados.ParametroSistema.LDAP_ATRIBUTO.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAP_ATRIBUTO) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_SN_LAST_NAME.id() + ",'" + this.escape(Enumerados.ParametroSistema.LDAP_SN_LAST_NAME.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAP_SN_LAST_NAME) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.ID_PERFIL_ACESSO_DEFAULT.id() + ",'" + this.escape(Enumerados.ParametroSistema.ID_PERFIL_ACESSO_DEFAULT.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.ID_PERFIL_ACESSO_DEFAULT) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.ID_GRUPO_PADRAO_LDAP.id() + ",'" + this.escape(Enumerados.ParametroSistema.ID_GRUPO_PADRAO_LDAP.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.ID_GRUPO_PADRAO_LDAP) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.NUMERO_COLABORADORES_CONSULTA_AD.id() + ",'" + this.escape(Enumerados.ParametroSistema.NUMERO_COLABORADORES_CONSULTA_AD.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.NUMERO_COLABORADORES_CONSULTA_AD) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_MOSTRA_BOTAO.id() + ",'" + StringEscapeUtils.escapeJavaScript(Enumerados.ParametroSistema.LDAP_MOSTRA_BOTAO.getCampoParametroInternacionalizado(request)) + "','" + this.escapeValor(Enumerados.ParametroSistema.LDAP_MOSTRA_BOTAO, "N") + " ')"); } /** * Grava os parametros do LDAP informados pelo usu�rio * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public void configuraLDAP(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO ldap = (StartDTO) document.getBean(); final ParametroCorporeService parametroCorporeService = this.getParametroCorporeService(); /* Atualiza o metodo de autencica��o de pasta 1 Proprio / 2LDAP */ final ParametroCorporeDTO metodoAutenticacaoPasta = new ParametroCorporeDTO(); metodoAutenticacaoPasta.setId(Enumerados.ParametroSistema.METODO_AUTENTICACAO_Pasta.id()); metodoAutenticacaoPasta.setValor(ldap.getMetodoAutenticacao()); this.getParametroCorporeService().atualizarParametros(metodoAutenticacaoPasta); if (ldap.getMetodoAutenticacao().equals("2")) { final Collection<ADUserDTO> listaAdUser = LDAPUtils.testarConexao(); for (final ADUserDTO adUserDto : listaAdUser) { if (adUserDto != null) { ldap.setListLdapDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(LdapDTO.class, "listAtributoLdapSerializado", request)); if (ldap.getListLdapDTO() != null && !ldap.getListLdapDTO().isEmpty()) { for (final LdapDTO parametroLDAP : ldap.getListLdapDTO()) { final ParametroCorporeDTO parametroCorpore = new ParametroCorporeDTO(); parametroCorpore.setId(Integer.parseInt(parametroLDAP.getIdAtributoLdap().trim())); parametroCorpore.setValor(parametroLDAP.getValorAtributoLdap().trim()); parametroCorporeService.atualizarParametros(parametroCorpore); } } document.executeScript("setNext('" + ldap.getCurrent() + "')"); } else { document.alert(UtilI18N.internacionaliza(request, "instalacao.parametrosConexaoInvalidos")); } } } else { document.executeScript("setNext('" + ldap.getCurrent() + "')"); } this.setSession(request, ldap.getCurrent()); this.carregaEmail(document, request, response); } /** * Testa os parametros de Conex�o LDAP * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void testaLDAP(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final Collection<ADUserDTO> listaAdUserDto = LDAPUtils.testarConexao(); for (final ADUserDTO adUserDto : listaAdUserDto) { if (adUserDto != null) { final StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("sAMAccountName: " + this.getDisponivel(request, adUserDto.getsAMAccountName())); stringBuilder.append("\nE-mail: " + this.getDisponivel(request, adUserDto.getMail())); stringBuilder.append("\nCN: " + this.getDisponivel(request, adUserDto.getCN())); stringBuilder.append("\nSN: " + this.getDisponivel(request, adUserDto.getSN())); stringBuilder.append("\nDN: " + this.getDisponivel(request, adUserDto.getDN())); stringBuilder.append("\nDisplay Name: " + this.getDisponivel(request, adUserDto.getDisplayName())); document.alert(stringBuilder.toString()); } else { document.alert(UtilI18N.internacionaliza(request, "ldap.conexaofalhou")); } } } /** * * @param request * @param atributoLdap * @return */ private String getDisponivel(final HttpServletRequest request, final String atributoLdap) { if (StringUtils.isBlank(atributoLdap)) { return UtilI18N.internacionaliza(request, "ldap.naodiponivel"); } return atributoLdap; } @SuppressWarnings("unchecked") public void configuraEmail(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO emailDto = (StartDTO) document.getBean(); final ParametroCorporeService parametroCorporeService = this.getParametroCorporeService(); emailDto.setListEmailDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(EmailDTO.class, "listAtributoEmailSerializado", request)); if (emailDto.getListEmailDTO() != null && !emailDto.getListEmailDTO().isEmpty()) { for (final EmailDTO parametroLdap : emailDto.getListEmailDTO()) { final ParametroCorporeDTO parametroCorporeDto = new ParametroCorporeDTO(); parametroCorporeDto.setId(Integer.parseInt(parametroLdap.getIdAtributoEmail().trim())); parametroCorporeDto.setValor(parametroLdap.getValorAtributoEmail().trim()); parametroCorporeService.atualizarParametros(parametroCorporeDto); } } this.setSession(request, emailDto.getCurrent()); document.executeScript("setNext('" + emailDto.getCurrent() + "')"); this.carregaLog(document, request, response); } public void carregaEmail(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosEmail()"); document.executeScript("addLinhaEmail(" + Enumerados.ParametroSistema.RemetenteNotificacoesSolicitacao.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.RemetenteNotificacoesSolicitacao.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.RemetenteNotificacoesSolicitacao) + "'," + "'N')"); document.executeScript("addLinhaEmail(" + Enumerados.ParametroSistema.EmailUsuario.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.EmailUsuario.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.EmailUsuario) + "'," + "'N')"); document.executeScript("addLinhaEmail(" + Enumerados.ParametroSistema.EmailSenha.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.EmailSenha.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.EmailSenha) + "'," + "'N')"); document.executeScript("addLinhaEmail(" + Enumerados.ParametroSistema.EmailAutenticacao.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.EmailAutenticacao.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.EmailAutenticacao) + "'," + "'S')"); document.executeScript("changeCheck()"); } /** * Carrega as informa��es dos parametros do sistema para log * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaLog(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosLog()"); document.executeScript("addLinhaLog(" + Enumerados.ParametroSistema.USE_LOG.id() + "," + "'" + StringEscapeUtils.escapeJavaScript(Enumerados.ParametroSistema.USE_LOG.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.USE_LOG) + "'," + "'S','','','')"); document.executeScript("addLinhaLog(" + Enumerados.ParametroSistema.FILE_LOG.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.FILE_LOG.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.FILE_LOG) + "'," + "'N', '', '', '')"); document.executeScript("addLinhaLog(" + Enumerados.ParametroSistema.PATH_LOG.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.PATH_LOG.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.PATH_LOG) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);')"); document.executeScript("addLinhaLog(" + Enumerados.ParametroSistema.TIPO_LOG.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.TIPO_LOG.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.TIPO_LOG) + "'," + "'N','true','','')"); document.executeScript("addLinhaLog(" + Enumerados.ParametroSistema.EXT_LOG.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.EXT_LOG.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.EXT_LOG) + "'," + "'N','','','')"); document.executeScript("changeCheck()"); } /** * Grava as informa��es de log do sistema * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public void configuraLog(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO log = (StartDTO) document.getBean(); log.setListLogDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(LogDTO.class, "listAtributoLogSerializado", request)); if (log.getListLogDTO() != null && !log.getListLogDTO().isEmpty()) { for (final LogDTO parametroLdap : log.getListLogDTO()) { final ParametroCorporeDTO parametroCorpore = new ParametroCorporeDTO(); parametroCorpore.setId(Integer.parseInt(parametroLdap.getIdAtributoLog().trim())); parametroCorpore.setValor(parametroLdap.getValorAtributoLog().trim()); this.getParametroCorporeService().atualizarParametros(parametroCorpore); } } this.setSession(request, log.getCurrent()); document.executeScript("setNext('" + log.getCurrent() + "')"); this.carregaGED(document, request, response); } /** * Carrega as informa��es do gerenciamento eletronico de documentos * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaGED(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosGed()"); document.executeScript("addLinhaGed(" + Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);')"); document.executeScript("addLinhaGed(" + Enumerados.ParametroSistema.GedDiretorio.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.GedDiretorio.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.GedDiretorio) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);')"); document.executeScript("changeCheck()"); } /** * Carrega as informa��es do gerenciamento eletronico de documentos * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaSMTP(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosSMTP()"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.EmailSMTP.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.EmailSMTP.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.EmailSMTP) + "'," + "'N', '')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_Servidor.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_Servidor.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_Servidor) + "'," + "'N', '')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_Caixa.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_Caixa.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_Caixa) + "'," + "'N', '')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_Senha.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_Senha.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_Senha) + "'," + "'N', '')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_Provider.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_Provider.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_Provider) + "'," + "'N', '')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_Porta.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_Porta.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_Porta) + "'," + "'N', 'Format[Numero]')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_Pasta.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_Pasta.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_Pasta) + "'," + "'N', '')"); document.executeScript("addLinhaSMTP(" + Enumerados.ParametroSistema.SMTP_LEITURA_LIMITE_.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.SMTP_LEITURA_LIMITE_.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.SMTP_LEITURA_LIMITE_) + "'," + "'N', 'Format[Numero]')"); document.executeScript("changeCheck()"); } /** * Grava as informa��es de Ged do sistema * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public void configuraGed(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO ged = (StartDTO) document.getBean(); final ParametroCorporeService parametroCorporeService = this.getParametroCorporeService(); /* Atualiza ged interno */ final ParametroCorporeDTO gedInterno = new ParametroCorporeDTO(); gedInterno.setId(Enumerados.ParametroSistema.GedInterno.id()); gedInterno.setValor("S"); parametroCorporeService.atualizarParametros(gedInterno); /* Atualiza a ged interno bd */ final ParametroCorporeDTO gedInternoBD = new ParametroCorporeDTO(); gedInternoBD.setId(Enumerados.ParametroSistema.GedInternoBD.id()); gedInternoBD.setValor("N"); parametroCorporeService.atualizarParametros(gedInternoBD); ged.setListGedDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(GedDTO.class, "listAtributoGedSerializado", request)); if (ged.getListGedDTO() != null && !ged.getListGedDTO().isEmpty()) { for (final GedDTO parametroLdap : ged.getListGedDTO()) { final ParametroCorporeDTO parametroCorpore = new ParametroCorporeDTO(); parametroCorpore.setId(Integer.parseInt(parametroLdap.getIdAtributoGed().trim())); parametroCorpore.setValor(parametroLdap.getValorAtributoGed().trim()); parametroCorporeService.atualizarParametros(parametroCorpore); } } this.setSession(request, ged.getCurrent()); document.executeScript("setNext('" + ged.getCurrent() + "')"); this.carregaSMTP(document, request, response); } /** * Grava as informa��es de SMTP do sistema * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public void configuraSMTP(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO smtp = (StartDTO) document.getBean(); smtp.setListSmtpDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(SmtpDTO.class, "listAtributoSMTPSerializado", request)); if (smtp.getListSmtpDTO() != null && !smtp.getListSmtpDTO().isEmpty()) { for (final SmtpDTO parametroLdap : smtp.getListSmtpDTO()) { final ParametroCorporeDTO parametroCorpore = new ParametroCorporeDTO(); parametroCorpore.setId(Integer.parseInt(parametroLdap.getIdAtributoSMTP().trim())); parametroCorpore.setValor(parametroLdap.getValorAtributoSMTP().trim()); this.getParametroCorporeService().atualizarParametros(parametroCorpore); } } this.setSession(request, smtp.getCurrent()); document.executeScript("setNext('" + smtp.getCurrent() + "')"); this.carregaParametrosIC(document, request, response); } /** * Carrega as informa��es do gerenciamento eletronico de documentos * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaParametrosIC(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosIC()"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_DESENVOLVIMENTO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_DESENVOLVIMENTO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_DESENVOLVIMENTO) + "'," + "'N', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_PRODUCAO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_PRODUCAO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_PRODUCAO) + "'," + "'N', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_HOMOLOGACAO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_HOMOLOGACAO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.CICLO_DE_VIDA_IC_HOMOLOGACAO) + "'," + "'N', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.NOME_INVENTARIO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.NOME_INVENTARIO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.NOME_INVENTARIO) + "'," + "'N', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.ITEM_CONFIGURACAO_MUDANCA.id() + "," + "'" + StringEscapeUtils.escapeJavaScript(Enumerados.ParametroSistema.ITEM_CONFIGURACAO_MUDANCA.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.ITEM_CONFIGURACAO_MUDANCA) + "'," + "'S', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.ENVIO_PADRAO_EMAIL_IC.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.ENVIO_PADRAO_EMAIL_IC.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.ENVIO_PADRAO_EMAIL_IC) + "'," + "'N', '', '', '', 'Format[Numero]')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.AVISAR_DATAEXPIRACAO_LICENCA.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.AVISAR_DATAEXPIRACAO_LICENCA.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.AVISAR_DATAEXPIRACAO_LICENCA) + "'," + "'N', '', '', '', 'Format[Numero]')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.ENVIAR_EMAIL_DATAEXPIRACAO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.ENVIAR_EMAIL_DATAEXPIRACAO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.ENVIAR_EMAIL_DATAEXPIRACAO) + "'," + "'N', '', '', '', 'Format[Numero]')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.CaminhoArquivoNetMap.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.CaminhoArquivoNetMap.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.CaminhoArquivoNetMap) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.FaixaIp.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.FaixaIp.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.FaixaIp) + "'," + "'N', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.DiretorioXmlAgente.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.DiretorioXmlAgente.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.DiretorioXmlAgente) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.CaminhoNmap.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.CaminhoNmap.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.CaminhoNmap) + "'," + "'N', '', '', '', '')"); document.executeScript("addLinhaParametrosIC(" + Enumerados.ParametroSistema.DiasInventario.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.DiasInventario.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.DiasInventario) + "'," + "'N', '', '', '' , 'Format[Numero]')"); document.executeScript("changeCheck()"); } /** * Grava as informa��es de parametros para item de configura��o do sistema * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public void configuraParametrosIC(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO paramIC = (StartDTO) document.getBean(); paramIC.setListIcDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ICDTO.class, "listAtributoICSerializado", request)); if (paramIC.getListIcDTO() != null && !paramIC.getListIcDTO().isEmpty()) { for (final ICDTO parametroLdap : paramIC.getListIcDTO()) { final ParametroCorporeDTO parametroCorpore = new ParametroCorporeDTO(); parametroCorpore.setId(Integer.parseInt(parametroLdap.getIdAtributoIC().trim())); parametroCorpore.setValor(parametroLdap.getValorAtributoIC().trim()); this.getParametroCorporeService().atualizarParametros(parametroCorpore); } } this.setSession(request, paramIC.getCurrent()); document.executeScript("setNext('" + paramIC.getCurrent() + "')"); this.carregaParametrosBase(document, request, response); } /** * Carrega as informa��es de base de conhecimento * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaParametrosBase(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosBase()"); document.executeScript("addLinhaParametrosBase(" + Enumerados.ParametroSistema.LUCENE_DIR_BASECONHECIMENTO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.LUCENE_DIR_BASECONHECIMENTO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.LUCENE_DIR_BASECONHECIMENTO) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);', '')"); document.executeScript("addLinhaParametrosBase(" + Enumerados.ParametroSistema.LUCENE_DIR_PALAVRAGEMEA.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.LUCENE_DIR_PALAVRAGEMEA.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.LUCENE_DIR_PALAVRAGEMEA) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);', '')"); document.executeScript("addLinhaParametrosBase(" + Enumerados.ParametroSistema.LUCENE_DIR_ANEXOBASECONHECIMENTO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.LUCENE_DIR_ANEXOBASECONHECIMENTO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.LUCENE_DIR_ANEXOBASECONHECIMENTO) + "'," + "'N', 'true', 'onblur', 'validaDiretorio(this);', '')"); document.executeScript("addLinhaParametrosBase(" + Enumerados.ParametroSistema.AVISAR_DATAEXPIRACAO_BASECONHECIMENTO.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.AVISAR_DATAEXPIRACAO_BASECONHECIMENTO.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.AVISAR_DATAEXPIRACAO_BASECONHECIMENTO) + "'," + "'N', '', '', '', 'Format[Numero]')"); document.executeScript("changeCheck()"); } /** * Grava as informa��es de parametros para base de conhecimento do sistema * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ @SuppressWarnings("unchecked") public void configuraParametrosBase(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO paramBase = (StartDTO) document.getBean(); paramBase.setListBaseDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(BaseDTO.class, "listAtributoBaseSerializado", request)); if (paramBase.getListBaseDTO() != null && !paramBase.getListBaseDTO().isEmpty()) { for (final BaseDTO parametroLdap : paramBase.getListBaseDTO()) { final ParametroCorporeDTO parametroCorpore = new ParametroCorporeDTO(); parametroCorpore.setId(Integer.parseInt(parametroLdap.getIdAtributoBase().trim())); parametroCorpore.setValor(parametroLdap.getValorAtributoBase().trim()); this.getParametroCorporeService().atualizarParametros(parametroCorpore); } } this.setSession(request, paramBase.getCurrent()); document.executeScript("setNext('" + paramBase.getCurrent() + "')"); this.carregaParametrosGerais(document, request, response); } /** * Carrega as informa��es de base de conhecimento * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void carregaParametrosGerais(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { document.executeScript("deleteAllRowsTabelaAtributosGerais()"); document.executeScript("addLinhaParametrosGerais(" + Enumerados.ParametroSistema.URL_Sistema.id() + "," + "'" + StringEscapeUtils.escapeJavaScript(Enumerados.ParametroSistema.URL_Sistema.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.URL_Sistema) + "'," + "'N','')"); /* * Rodrigo Pecci Acorse - 09/12/2013 14h25 - #126457 Adiciona o input que solicita o nome do schema somente se o banco de dados for diferente de Sql Server e Oracle */ if (!CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase(SQLConfig.SQLSERVER) && !CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) { document.executeScript("addLinhaParametrosGerais(" + Enumerados.ParametroSistema.DB_SCHEMA.id() + "," + "'" + this.escape(Enumerados.ParametroSistema.DB_SCHEMA.getCampoParametroInternacionalizado(request)) + "'," + "'" + this.escapeValor(Enumerados.ParametroSistema.DB_SCHEMA) + "'," + "'N','true')"); } document.executeScript("changeCheck()"); } @SuppressWarnings("unchecked") public void configuraParametrosGerais(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO paramBase = (StartDTO) document.getBean(); final ParametroCorporeService parametroCorporeService = this.getParametroCorporeService(); final InstalacaoService instalacaoService = this.getInstalacaoService(); final MenuService menuService = this.getMenuService(); this.carregaScript(); /* * Rodrigo Pecci Acorse - 06/12/2013 15h30 - #126457 Seta o schema nos parametros do sistema se o banco for Oracle. */ if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) { String userName = null; final DataSource ds = (DataSource) new InitialContext().lookup(Constantes.getValue("CONTEXTO_CONEXAO") + Constantes.getValue("DATABASE_ALIAS")); if (ds != null) { try (Connection conn = ds.getConnection()) { userName = conn.getMetaData().getUserName(); if (userName != null && !userName.equals("")) { final ParametroCorporeDTO parametroCorporeSchema = new ParametroCorporeDTO(); parametroCorporeSchema.setId(Enumerados.ParametroSistema.DB_SCHEMA.id()); parametroCorporeSchema.setValor(userName); parametroCorporeService.atualizarParametros(parametroCorporeSchema); } } } } final ParametroCorporeDTO cadastroSolicitacaoServico = new ParametroCorporeDTO(); cadastroSolicitacaoServico.setId(Enumerados.ParametroSistema.PAGE_CADADTRO_SOLICITACAOSERVICO.id()); cadastroSolicitacaoServico.setValor("/pages/solicitacaoServicoMultiContratos/solicitacaoServicoMultiContratos.load"); parametroCorporeService.atualizarParametros(cadastroSolicitacaoServico); final ParametroCorporeDTO nomeFluxoPadraoServicos = new ParametroCorporeDTO(); nomeFluxoPadraoServicos.setId(Enumerados.ParametroSistema.NomeFluxoPadraoServicos.id()); nomeFluxoPadraoServicos.setValor("SolicitacaoServico"); parametroCorporeService.atualizarParametros(nomeFluxoPadraoServicos); final ParametroCorporeDTO grupoPadraoNivel1 = new ParametroCorporeDTO(); grupoPadraoNivel1.setId(Enumerados.ParametroSistema.ID_GRUPO_PADRAO_NIVEL1.id()); grupoPadraoNivel1.setValor("2"); parametroCorporeService.atualizarParametros(grupoPadraoNivel1); final ParametroCorporeDTO idFaseExecucaoServicos = new ParametroCorporeDTO(); idFaseExecucaoServicos.setId(Enumerados.ParametroSistema.IDFaseExecucaoServicos.id()); idFaseExecucaoServicos.setValor("2"); parametroCorporeService.atualizarParametros(idFaseExecucaoServicos); final ParametroCorporeDTO colaboradoresVinculoContratos = new ParametroCorporeDTO(); colaboradoresVinculoContratos.setId(Enumerados.ParametroSistema.COLABORADORES_VINC_CONTRATOS.id()); colaboradoresVinculoContratos.setValor("S"); parametroCorporeService.atualizarParametros(colaboradoresVinculoContratos); paramBase.setListGeralDTO(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(GeralDTO.class, "listAtributoGeraisSerializado", request)); if (paramBase.getListGeralDTO() != null && !paramBase.getListGeralDTO().isEmpty()) { for (final GeralDTO parametroLdap : paramBase.getListGeralDTO()) { final ParametroCorporeDTO parametroCorporeDto = new ParametroCorporeDTO(); parametroCorporeDto.setId(Integer.parseInt(parametroLdap.getIdAtributoGeral().trim())); parametroCorporeDto.setValor(parametroLdap.getValorAtributoGeral().trim()); parametroCorporeService.atualizarParametros(parametroCorporeDto); } } try { System.out.println("CITSMART - Criando parametros novos... iniciando."); parametroCorporeService.criarParametrosNovos(); System.out.println("CITSMART - Criando parametros novos... pronto."); } catch (final Exception e) { e.printStackTrace(); } // Carrega os menus final String separator = System.getProperty("file.separator"); final String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "XMLs" + separator; final File file = new File(diretorioReceita + "menu.xml"); menuService.gerarCarga(file); /* Carregando as dinamic views */ try { this.carregaVisoes(request); request.getSession().setAttribute("passoInstalacao", null); final ScriptsService scriptsService = this.getScriptsService(); if (scriptsService.haScriptDeVersaoComErro()) { scriptsService.marcaErrosScriptsComoCorrigidos(); } final VersaoService versaoService = this.getVersaoService(); versaoService.validaVersoes(WebUtil.getUsuario(request)); /** * Define a instala��o com sucesso */ final InstalacaoDTO instalacaoDTO = new InstalacaoDTO(); instalacaoDTO.setSucesso("S"); instalacaoService.create(instalacaoDTO); this.reload(document, request, "citcorpore.comum.citsmartInstaladoComSucesso"); // forcei o usu�rio relogar por problemas de carregamento de menu. request.getSession(true).setAttribute("menuPadrao", null); } catch (final Exception ex) { document.alert(ex.getMessage()); document.executeScript("habilita();"); } } @Override public Class<StartDTO> getBeanClass() { return StartDTO.class; } /** * Defini o valor da sess�o para os passos da instala��o * * @param request * @param sessao */ public void setSession(final HttpServletRequest request, final String sessao) { final String s = (String) request.getSession().getAttribute("passoInstalacao"); if (s != null) { try { if (Integer.valueOf(UtilStrings.apenasNumeros(sessao)) > Integer.valueOf(UtilStrings.apenasNumeros(s))) { request.getSession().setAttribute("passoInstalacao", sessao); } } catch (final Exception e) {} } else { request.getSession().setAttribute("passoInstalacao", sessao); } } /** * D� um location para a p�gina inicial * * @param document * @param request */ public void reload(final DocumentHTML document, final HttpServletRequest request, final String mensagem) { String comando = "window.location = '" + request.getContextPath() + "/pages/index/index.load"; if (mensagem != null && !mensagem.trim().isEmpty()) { comando += "?mensagem=" + mensagem; } comando += "';"; document.executeScript(comando); } /** * D� um location para a p�gina inicial * * @param document * @param request */ public void reloadPaginaScript(final DocumentHTML document, final HttpServletRequest request) { document.executeScript("window.location = '" + request.getContextPath() + "/pages/scripts/scripts.load?upgrade=sim';"); } /** * Valida se Existe o diret�rio * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void validaDiretorio(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StartDTO diretorio = (StartDTO) document.getBean(); final String campo = diretorio.getCampoDiretorio(); if (!diretorio.getDiretorio().equals("")) { if (!new File(diretorio.getDiretorio()).isDirectory()) { document.alert(UtilI18N.internacionaliza(request, "start.instalacao.diretorioNaoEncontrado")); if (campo != null) { document.executeScript("$('#" + campo + "').val('');"); document.executeScript("$('#" + campo + "').focus();"); } } } } /** * Realiza a leitura de um arquivo e incrementa em uma lista de uploads * * @param dir * @param lista * @return */ public static List<UploadDTO> listDirectoryAppend(final File dir, final java.util.List<UploadDTO> lista) { if (dir.isDirectory()) { final String[] filhos = dir.list(); for (final String filho : filhos) { final File nome = new File(dir, filho); if (nome.isFile()) { if (nome.getName().endsWith(".citVision")) { lista.add(new UploadDTO(nome.getName(), nome.getPath())); } } else if (nome.isDirectory()) { listDirectoryAppend(nome, lista); } } } else { lista.add(new UploadDTO(dir.getName(), dir.getPath())); } return lista; } /** * Carrega as Visoes da Dinamic Views para instala��o do sistema * * @throws ServiceException * @throws Exception */ @SuppressWarnings("rawtypes") public void carregaVisoes(final HttpServletRequest request) throws ServiceException, Exception { final DataBaseMetaDadosService dataBaseMetaDadosService = (DataBaseMetaDadosService) ServiceLocator.getInstance().getService(DataBaseMetaDadosService.class, null); final Collection colection = dataBaseMetaDadosService.getDataBaseMetaDadosUtil(); if (colection != null && !colection.isEmpty()) { /* Carregando metaDados */ dataBaseMetaDadosService.carregaTodosMetaDados(colection); final List<UploadDTO> lista = new ArrayList<UploadDTO>(); listDirectoryAppend(new File(CITCorporeUtil.CAMINHO_REAL_APP + "/visoesExportadas"), lista); this.importaVisoes(lista); } else { throw new Exception(UtilI18N.internacionaliza(request, "start.metaDadosException")); } } /** * Carrega rotina de script * * @throws ServiceException * @throws Exception */ public void carregaScript() { try { final ScriptsService scriptsService = this.getScriptsService(); System.out.println("CITSMART - Executando rotina de scripts... iniciando."); final String erro = scriptsService.executaRotinaScripts(); if (erro != null && !erro.isEmpty()) { System.out.println("CITSMART - Problema ao executar rotina. Detalhes:\n" + erro); } else { System.out.println("CITSMART - Executando rotina de scripts... pronto."); } final VersaoService versaoService = this.getVersaoService(); FiltroSegurancaCITSmart.setHaVersoesSemValidacao(versaoService.haVersoesSemValidacao()); } catch (final Exception e) { e.printStackTrace(); } } /** * * @param arquivosUpados * @throws Exception * @throws ServiceException */ public void importaVisoes(final List<UploadDTO> arquivosUpados) throws ServiceException, Exception { final VisaoService visaoService = (VisaoService) ServiceLocator.getInstance().getService(VisaoService.class, null); FileReader reader = null; VisaoDTO visaoAtual = null; VisaoDTO visaoDtoXML = new VisaoDTO(); int countImport = 0; int countAtualiza = 0; if (arquivosUpados != null && arquivosUpados.size() > 0) { for (final UploadDTO uploadDTO : arquivosUpados) { final String path = uploadDTO.getPath(); if (path != null && !path.isEmpty()) { try { reader = new FileReader(path); } catch (final FileNotFoundException e) { e.printStackTrace(); } final XStream x = new XStream(new DomDriver("ISO-8859-1")); visaoDtoXML = (VisaoDTO) x.fromXML(reader); visaoAtual = visaoService.visaoExistente(visaoDtoXML.getIdentificador()); // Determina o tipo da importa��o if (visaoAtual == null) { try { visaoService.importar(visaoDtoXML); countImport++; } catch (final Exception e) { System.out.println("Erro ao importar vis�o: " + visaoDtoXML.getIdentificador()); e.printStackTrace(); } } else { try { visaoService.atualizarVisao(visaoAtual, visaoDtoXML); countAtualiza++; } catch (final Exception e) { System.out.println("Erro ao atualizar vis�o: " + visaoDtoXML.getIdentificador()); e.printStackTrace(); } } } } System.out.println("Vis�es importadas com sucesso: " + countImport + "\n" + "Vis�es atualizadas com sucesso: " + countAtualiza); } else { System.out.println("Nenhum arquivo foi selecionado!"); } } private String escape(final String valor) { return StringEscapeUtils.escapeJavaScript(valor); } private String escapeValor(final ParametroSistema parametro, final String df) throws Exception { return ParametroUtil.getValorParametroCitSmartHashMap(parametro, df); } private String escapeValor(final ParametroSistema parametro) throws Exception { return this.escape(ParametroUtil.getValorParametroCitSmartHashMap(parametro, DEFAULT)); } public void internacionaliza(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final StartDTO bean = (StartDTO) document.getBean(); final String idiomaPadrao = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.IDIOMAPADRAO, ""); request.getSession(true).setAttribute("menu", null); request.getSession(true).setAttribute("menuPadrao", null); if (bean != null) { if (bean.getLocale() != null) { WebUtil.setLocale(bean.getLocale().trim(), request); XmlReadLookup.getInstance(new Locale(bean.getLocale().trim())); } else { WebUtil.setLocale(idiomaPadrao, request); XmlReadLookup.getInstance(new Locale(idiomaPadrao)); } } else { WebUtil.setLocale(idiomaPadrao, request); XmlReadLookup.getInstance(new Locale(idiomaPadrao)); } document.executeScript("window.location.reload()"); } public void buscaHistoricoPorVersao(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final StartDTO startDTO = (StartDTO) document.getBean(); String locale = UtilI18N.PORTUGUESE_SIGLA; final HttpSession session = request.getSession(); if (session.getAttribute("locale") != null && StringUtils.isNotBlank(session.getAttribute("locale").toString())) { locale = session.getAttribute("locale").toString(); } Reader reader = null; final String separator = System.getProperty("file.separator"); final String path = CITCorporeUtil.CAMINHO_REAL_APP + "XMLs" + separator + "release_" + locale + ".xml"; try { reader = new InputStreamReader(new FileInputStream(path), "ISO-8859-1"); } catch (final FileNotFoundException e) { e.printStackTrace(); } final XStream x = new XStream(new DomDriver("ISO-8859-1")); final Collection<ReleaseDTO> listRelease = (Collection<ReleaseDTO>) x.fromXML(reader); try { if (reader != null) { reader.close(); } } catch (final IOException e) { e.printStackTrace(); } if (listRelease != null && !listRelease.isEmpty()) { final StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("<div id='historicoRelease' style='overflow: auto;'>"); int countRelease = 0; for (final ReleaseDTO releaseDto : listRelease) { if (startDTO.getVersao().equals(releaseDto.getVersao())) { stringBuilder.append("<div id='release" + countRelease + "' style='width: 100%; text-align: justify;'>"); stringBuilder.append("<div>"); stringBuilder.append("<br>"); if (releaseDto.getConteudo() != null && !releaseDto.getConteudo().isEmpty()) { int i = 0; for (final String item : releaseDto.getConteudo()) { ++i; stringBuilder.append("<div>"); stringBuilder.append("<span style='font-weight:bold;'>"); stringBuilder.append(i); stringBuilder.append(" "); stringBuilder.append("</span>"); stringBuilder.append(Util.encodeHTML(item)); stringBuilder.append("</div>"); stringBuilder.append("<br>"); } } stringBuilder.append("</div>"); stringBuilder.append("</div>"); ++countRelease; } stringBuilder.append("</div>"); document.getElementById("divRelease").setInnerHTML(stringBuilder.toString()); } } } private InstalacaoService instalacaoService; private MenuService menuService; private ParametroCorporeService parametroCorporeService; private ScriptsService scriptsService; private VersaoService versaoService; private InstalacaoService getInstalacaoService() throws Exception { if (instalacaoService == null) { instalacaoService = (InstalacaoService) ServiceLocator.getInstance().getService(InstalacaoService.class, null); } return instalacaoService; } private MenuService getMenuService() throws Exception { if (menuService == null) { menuService = (MenuService) ServiceLocator.getInstance().getService(MenuService.class, null); } return menuService; } private ParametroCorporeService getParametroCorporeService() throws Exception { if (parametroCorporeService == null) { parametroCorporeService = (ParametroCorporeService) ServiceLocator.getInstance().getService(ParametroCorporeService.class, null); } return parametroCorporeService; } private ScriptsService getScriptsService() throws Exception { if (scriptsService == null) { scriptsService = (ScriptsService) ServiceLocator.getInstance().getService(ScriptsService.class, null); } return scriptsService; } private VersaoService getVersaoService() throws Exception { if (versaoService == null) { versaoService = (VersaoService) ServiceLocator.getInstance().getService(VersaoService.class, null); } return versaoService; } }