/** * */ package br.com.centralit.citcorpore.ajaxForms; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.ADUserDTO; import br.com.centralit.citcorpore.bean.LdapDTO; import br.com.centralit.citcorpore.bean.ParametroCorporeDTO; import br.com.centralit.citcorpore.integracao.ad.LDAPUtils; import br.com.centralit.citcorpore.negocio.ParametroCorporeService; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.ParametroUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilI18N; /** * @author Valdo�lo * */ @SuppressWarnings({ "rawtypes", "unchecked" }) public class Ldap extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { document.executeScript("deleteAllRowsTabelaAtributosLdap()"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_URL.id() + ",'" + Enumerados.ParametroSistema.LDAP_URL.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_URL, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.DOMINIO_AD.id() + ",'" + Enumerados.ParametroSistema.DOMINIO_AD.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DOMINIO_AD, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_SUBDOMINIO.id() + ",'" + Enumerados.ParametroSistema.LDAP_SUBDOMINIO.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_SUBDOMINIO, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAD_SUFIXO_DOMINIO.id() + ",'" + Enumerados.ParametroSistema.LDAD_SUFIXO_DOMINIO.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAD_SUFIXO_DOMINIO, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LOGIN_AD.id() + ",'" + Enumerados.ParametroSistema.LOGIN_AD.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LOGIN_AD, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.SENHA_AD.id() + ",'" + Enumerados.ParametroSistema.SENHA_AD.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.SENHA_AD, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_FILTRO.id() + ",'" + Enumerados.ParametroSistema.LDAP_FILTRO.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_FILTRO, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_ATRIBUTO.id() + ",'" + Enumerados.ParametroSistema.LDAP_ATRIBUTO.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_ATRIBUTO, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_SN_LAST_NAME.id() + ",'" + Enumerados.ParametroSistema.LDAP_SN_LAST_NAME.getCampoParametroInternacionalizado(request) + "','" + Internacionalizar.internacionalizaOptionSN(request, "restore", StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_SN_LAST_NAME, ""), "'", "\'")) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.ID_PERFIL_ACESSO_DEFAULT.id() + ",'" + Enumerados.ParametroSistema.ID_PERFIL_ACESSO_DEFAULT.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ID_PERFIL_ACESSO_DEFAULT, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.ID_GRUPO_PADRAO_LDAP.id() + ",'" + Enumerados.ParametroSistema.ID_GRUPO_PADRAO_LDAP.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ID_GRUPO_PADRAO_LDAP, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.NUMERO_COLABORADORES_CONSULTA_AD.id() + ",'" + Enumerados.ParametroSistema.NUMERO_COLABORADORES_CONSULTA_AD.getCampoParametroInternacionalizado(request) + "','" + StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.NUMERO_COLABORADORES_CONSULTA_AD, ""), "'", "\'") + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_MOSTRA_BOTAO.id() + ",'" + StringUtils.replace(Enumerados.ParametroSistema.LDAP_MOSTRA_BOTAO.getCampoParametroInternacionalizado(request), "'", "\\'") + "','" + Internacionalizar.internacionalizaOptionSN(request, "restore", StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_MOSTRA_BOTAO, "N"), "\'", "\\'")) + " ')"); document.executeScript("addLinhaTabelaAtributosLdap(" + Enumerados.ParametroSistema.LDAP_OPEN_LDAP.id() + ",'" + StringUtils.replace(Enumerados.ParametroSistema.LDAP_OPEN_LDAP.getCampoParametroInternacionalizado(request), "'", "\\'") + "','" + Internacionalizar.internacionalizaOptionSN(request, "restore", StringUtils.replace(ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.LDAP_OPEN_LDAP, "N"), "\'", "\\'")) + " ')"); } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { LdapDTO ldapDto = (LdapDTO) document.getBean(); ldapDto.setListLdapDTO((Collection<LdapDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(LdapDTO.class, "listAtributoLdapSerializado", request)); ParametroCorporeService parametroCorporeService = (ParametroCorporeService) ServiceLocator.getInstance().getService(ParametroCorporeService.class, null); if (ldapDto.getListLdapDTO() != null && !ldapDto.getListLdapDTO().isEmpty()) { String[] totalParametros= null; for (LdapDTO parametroLdap : ldapDto.getListLdapDTO()) { ParametroCorporeDTO parametroCorporeDto = new ParametroCorporeDTO(); parametroCorporeDto.setId(Integer.parseInt(parametroLdap.getIdAtributoLdap().trim())); parametroCorporeDto = (ParametroCorporeDTO) parametroCorporeService.restore(parametroCorporeDto); /* * Se o par�metro for do tipo boolean, faz a convers�o para o valor correto */ if (parametroCorporeDto.getTipoDado() != null && parametroCorporeDto.getTipoDado().equalsIgnoreCase("Boolean")) { parametroCorporeDto.setValor(Internacionalizar.internacionalizaOptionSN(request, "save", parametroLdap.getValorAtributoLdap())); } else { parametroCorporeDto.setValor(parametroLdap.getValorAtributoLdap().trim().replaceAll(" ", "")); } parametroCorporeService.atualizarParametros(parametroCorporeDto); } document.alert(UtilI18N.internacionaliza(request, "ldap.atualizadocomsucesso")); } } public void testarConexao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { Collection<ADUserDTO> listaAdUserDto = LDAPUtils.testarConexao(); if (listaAdUserDto != null && !listaAdUserDto.isEmpty()) { for (ADUserDTO adUserDto : listaAdUserDto) { if (adUserDto != null && adUserDto.isAtivo()) { document.alert(UtilI18N.internacionaliza(request, "ldap.conexaocom") + getDisponivel(request, adUserDto.getServer()) +" "+UtilI18N.internacionaliza(request, "ldap.conexaorealizadasucesso")+"\n \n sAMAccountName: " + getDisponivel(request, adUserDto.getsAMAccountName()) + "\n E-mail: " + getDisponivel(request, adUserDto.getMail()) + "\n CN: " + getDisponivel(request, adUserDto.getCN()) + "\n SN: " + getDisponivel(request, adUserDto.getSN()) + "\n DN: " + getDisponivel(request, adUserDto.getDN()) + "\n Display Name: " + getDisponivel(request, adUserDto.getDisplayName())); } else { document.alert(UtilI18N.internacionaliza(request, "ldap.conexaocom") + " "+getDisponivel(request, adUserDto.getServer()) + " " +UtilI18N.internacionaliza(request, "ldap.conexaofalhou")); } } }else{ document.alert(UtilI18N.internacionaliza(request, "ldap.todasconexoesfalharam")); } document.executeScript("JANELA_AGUARDE_MENU.hide();"); } /** * Testa os parametros de conex�o e Sincroniza com o LDAP * @param document * @param request * @param response * @throws Exception */ public void sincronizaLDAP(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { Collection<ADUserDTO> listaAdUserDto = LDAPUtils.testarConexao(); document.executeScript("JANELA_AGUARDE_MENU.show();"); if (listaAdUserDto != null && !listaAdUserDto.isEmpty()) { LDAPUtils.sincronizaUsuariosAD(); document.alert(UtilI18N.internacionaliza(request, "ldap.sincronizacaoConcluida") +"\n"); } else { document.alert(UtilI18N.internacionaliza(request, "ldap.conexaofalhou")); } document.executeScript("JANELA_AGUARDE_MENU.hide();"); } private String getDisponivel(HttpServletRequest request, String atributoLdap) { if (atributoLdap != null) { if (StringUtils.isBlank(atributoLdap)) { return UtilI18N.internacionaliza(request, "ldap.naodiponivel"); } return atributoLdap; } return UtilI18N.internacionaliza(request, "ldap.naodiponivel"); } @Override public Class getBeanClass() { return LdapDTO.class; } }