package org.appfuse.web; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.collections.map.TransformedMap; import org.apache.log4j.Logger; import org.appfuse.model.Cliente; import org.appfuse.model.LamTmpUsuariosOid; import org.appfuse.model.LamUsuarios; import org.appfuse.model.LamUsuariosRol; import org.appfuse.model.UsuarioLamCliSie; import org.appfuse.service.AdmRolesManager; import org.appfuse.service.ClientesManager; import org.appfuse.service.LamTmpUsuariosOidManager; import org.appfuse.service.LamUsuariosManager; import org.appfuse.service.MailEngine; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.support.MessageSourceAccessor; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import sun.misc.Launcher; import ar.com.aa2000.webadmin.utils.DateUtils; @Controller public class MostUsuariosController implements ApplicationContextAware { Logger logger = Logger.getLogger(MostUsuariosController.class); @Autowired private LamTmpUsuariosOidManager tmpUsuariosManager; @Autowired private LamUsuariosManager lamUsuariosManager; @Autowired private AdmRolesManager admRolesManager; @Autowired private ClientesManager clientesManager; @Autowired private MailEngine mailEngine; private ApplicationContext context; public static final String Alerta_Camara_Frio ="1" ; public static final String Portal_FE ="2" ; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.context = applicationContext; } @RequestMapping(value = "/cac-usuarios.html", method = RequestMethod.GET) public ModelAndView listUsuariosHandler(HttpServletRequest request) { // Validar si esta el usuario en sesion...en caso de que no este lo // mandas a pagina de error... if (request.getSession().getAttribute("USUARIO_SESSION") != null) { return new ModelAndView("mostusuarios"); } else { return new ModelAndView("usuarioInvalido"); } } @SuppressWarnings({ "unchecked", "rawtypes" }) @RequestMapping(value = "/usuarios-list.html", method = RequestMethod.POST) public ModelAndView listMostrarUsuariosHandler(HttpServletRequest request) { Map req = new HashMap(); req.putAll(request.getParameterMap()); Map params = TransformedMap.decorateTransform(req, null, new StringArrayTransformer()); Map model = new HashMap(); logger.debug("Lista Usuarios No Autorizados."); model = tmpUsuariosManager.getLamTmpUsuariosNoAutorizados(params); return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } @SuppressWarnings({ "rawtypes", "unchecked" }) @RequestMapping(value = "/buscarRoles.html", method = RequestMethod.POST) public ModelAndView buscarRolesList(HttpServletRequest request, HttpServletResponse response) { Map model = new HashMap(); model.put("data", admRolesManager.getAdmRoles()); model.put("success", true); logger.debug("**************Lista de Roles Autorizados *******************"); return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } @SuppressWarnings({ "rawtypes", "unchecked" }) @RequestMapping(value = "/buscarCliente.html", method = RequestMethod.POST) public ModelAndView buscarCliente(HttpServletRequest request, @RequestParam(value = "cuit", required = false) String cuit, @RequestParam(value = "nombre", required = false) String nombre){ Map model = new HashMap(); if (cuit != null) { Cliente cliente = clientesManager.getCliente(cuit); if (cliente != null) { model.put("data", cliente); model.put("success", true); } else { model.put("success", false); model.put("errors.code","Error en la busqueda del cliente"); } return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } /* if (nombre != null){ model.put("data", clientesManager.getClientes(nombre)); model.put("success", true); return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } */ return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } // @SuppressWarnings({ "unchecked", "rawtypes" }) // @RequestMapping(value = "/usuarios-aprobar.html", method = RequestMethod.POST) // public ModelAndView aprobarUsuariosHandler(HttpServletRequest request, // @RequestParam(value = "id", required = true) Long id, // @RequestParam(value = "rol_id", required = true) Long rol_id) { // // logger.debug("id de rol " + rol_id); // Map model = new HashMap(); // try { // ar.com.lam.server.models.LamUsuarios usuarioLam = (ar.com.lam.server.models.LamUsuarios) request // .getSession().getAttribute("USUARIO_SESSION"); // String personalCacAprueba = usuarioLam.getCodigo() + " " // + usuarioLam.getNombre(); // logger.debug("Personal del CAC que aprueba " + personalCacAprueba); // LamTmpUsuariosOid user = tmpUsuariosManager.getLamTmpUsuario(id); // user.setAprobado(1); // user.setDescripcionAdministrador("aprobo: " + personalCacAprueba+ "con rol: " +rol_id); // tmpUsuariosManager.saveLamTmpUsuario(user); // // LamUsuarios lamUser = new LamUsuarios(); // lamUser.setCodigo(user.getUserName()); // lamUser.setCestado("ACTI"); // lamUser.setcSucursal(null); // lamUser.setCusuario("CP_AUTOGESTION"); // lamUser.setDireccion(""); // lamUser.setEmail(user.getEmail()); // lamUser.setFhCreacion(DateUtils.fecha()); // lamUser.setFmodif(DateUtils.fecha()); // lamUser.setIdNivel(1); // lamUser.setLocalidad(""); // lamUser.setNombre(user.getNombre().toUpperCase() + " " // + user.getApellido().toUpperCase()); // lamUser.setNumero(user.getId().toString()); // lamUser.setNumeroDocumento(user.getNumeroDocumento()); // lamUser.setObservaciones(""); // lamUser.setPassword(user.getPassword()); // lamUser.setRfnemero((long) 0); // lamUser.setSector(null); // lamUser.setSucursal("AUTOG"); // lamUser.setTelefono(user.getTelefonoTrabajo()); // lamUser.setTipo("WEB"); // lamUser.setTipoDocumento(user.getTipoDocumento()); // lamUser.setUsuarioLDAP(user.getUserName()); // logger.debug("LamUsuarios Nombre: " + lamUser.getNombre()); // lamUsuariosManager.saveLamUsuario(lamUser); // logger.debug("LamUsuarios Grabado!"); // // /***********************************************************************/ // // Creamos nuevo objeto LamUsuariosRol // logger.debug(" ******** Vamos a Crear y Grabar el Rol para el usuario " // + lamUser.getNombre() // + " con id " // + lamUser.getNumero() // + " **********"); // LamUsuariosRol userRol = new LamUsuariosRol(); // userRol.setUserId(lamUser.getId()); // userRol.setRolId(rol_id); // logger.debug("Datos seteados en el LamUsuariosRol, UserId " // + userRol.getUserId() + "rol id " + userRol.getRolId()); // lamUsuariosManager.saveLamUsuarioRol(userRol); // logger.debug("LamUsuariosRol Grabado con Exito!"); // // ResourceBundleMessageSource messages = (ResourceBundleMessageSource) context // .getBean("messageSource"); // MessageSourceAccessor accessor = new MessageSourceAccessor(messages); // // mailEngine.templateName = "autoriza.vm"; // mailEngine.sendConfirmationEmail(user, // accessor.getMessage("signup.mail.subject"), // accessor.getMessage("signup.from"), // accessor.getMessage("signup.email.message")); // logger.debug("Mail Enviado!"); // // model.put("success", true); // } catch (Exception e) { // logger.error(e); // logger.error(e.getCause()); // // model.put("success", false); // model.put("errors.code", // "Error en la aprobación del usuario"); // } // // return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); // } @SuppressWarnings({ "unchecked", "rawtypes" }) @RequestMapping(value = "/usuarios-aprobar.html", method = RequestMethod.POST) public ModelAndView aprobarUsuariosHandler(HttpServletRequest request, @RequestParam(value = "id", required = true) Long id, @RequestParam(value = "rolAutog", required = false) Long rolAutog, @RequestParam(value = "rolAutogRest", required = false) Long rolAutogRest, @RequestParam(value = "rolFe", required = false) Long rolFe, @RequestParam(value = "scli", required = false) String scli) { ArrayList roles = new ArrayList(); UsuarioLamCliSie lamCliSie = new UsuarioLamCliSie(); if (rolAutog != null) { roles.add(rolAutog); } if (rolAutogRest != null) { roles.add(rolAutogRest); lamCliSie.setTipo_aplicacion(Alerta_Camara_Frio); } if (rolFe != null) { roles.add(rolFe); lamCliSie.setTipo_aplicacion(Portal_FE); } Map model = new HashMap(); try { ar.com.lam.server.models.LamUsuarios usuarioLam = (ar.com.lam.server.models.LamUsuarios) request .getSession().getAttribute("USUARIO_SESSION"); String personalCacAprueba = usuarioLam.getCodigo() + " " + usuarioLam.getNombre(); logger.debug("Personal del CAC que aprueba " + personalCacAprueba); LamTmpUsuariosOid user = tmpUsuariosManager.getLamTmpUsuario(id); user.setAprobado(1); user.setDescripcionAdministrador("aprobo: " + personalCacAprueba+ "con rol: " +roles.toString()); tmpUsuariosManager.saveLamTmpUsuario(user); LamUsuarios lamUser = new LamUsuarios(); lamUser.setCodigo(user.getUserName()); lamUser.setCestado("ACTI"); lamUser.setcSucursal(null); lamUser.setCusuario("CP_AUTOGESTION"); lamUser.setDireccion(""); lamUser.setEmail(user.getEmail()); lamUser.setFhCreacion(DateUtils.fecha()); lamUser.setFmodif(DateUtils.fecha()); lamUser.setIdNivel(1); lamUser.setLocalidad(""); lamUser.setNombre(user.getNombre().toUpperCase() + " " + user.getApellido().toUpperCase()); lamUser.setNumero(user.getId().toString()); lamUser.setNumeroDocumento(user.getNumeroDocumento()); lamUser.setObservaciones(""); lamUser.setPassword(user.getPassword()); lamUser.setRfnemero((long) 0); lamUser.setSector(null); lamUser.setSucursal("AUTOG"); lamUser.setTelefono(user.getTelefonoTrabajo()); lamUser.setTipo("WEB"); lamUser.setTipoDocumento(user.getTipoDocumento()); lamUser.setUsuarioLDAP(user.getUserName()); logger.debug("LamUsuarios Nombre: " + lamUser.getNombre()); lamUsuariosManager.saveLamUsuario(lamUser); logger.debug("LamUsuarios Grabado!"); /***********************************************************************/ // Creamos nuevo objeto LamUsuariosRol logger.debug(" ******** Vamos a Crear y Grabar el Rol para el usuario " + lamUser.getNombre() + " con id " + lamUser.getNumero() + " **********"); for (Long rol : roles) { LamUsuariosRol userRol = new LamUsuariosRol(); userRol.setUserId(lamUser.getId()); userRol.setRolId(rol); lamUsuariosManager.saveLamUsuarioRol(userRol); if(userRol.getRolId().equals(57L)){ lamCliSie.setCli_id_sie( Long.parseLong(scli)); lamCliSie.setUsu_id_lam(lamUser.getId()); lamCliSie.setUsu_lam(lamUser.getCodigo()); lamCliSie.setMhabilitada(1); lamCliSie.setFmodif(DateUtils.fecha()); lamCliSie.setCusuario(personalCacAprueba); lamUsuariosManager.saveUsuarioLamCliSie(lamCliSie); } } logger.debug("LamUsuariosRol Grabado con Exito!"); ResourceBundleMessageSource messages = (ResourceBundleMessageSource) context .getBean("messageSource"); MessageSourceAccessor accessor = new MessageSourceAccessor(messages); /* mailEngine.templateName = "autoriza.vm"; mailEngine.sendConfirmationEmail(user, accessor.getMessage("signup.mail.subject"), accessor.getMessage("signup.from"), accessor.getMessage("signup.email.message"));*/ logger.debug("Mail Enviado!"); model.put("success", true); } catch (Exception e) { logger.error(e); logger.error(e.getCause()); model.put("success", false); model.put("errors.code","Error en la aprobación del usuario"); } return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } @SuppressWarnings({ "unchecked", "rawtypes" }) @RequestMapping(value = "/usuarios-desaprobar.html", method = RequestMethod.POST) public ModelAndView desaprobarTmpUsuario(HttpServletRequest request, @RequestParam(value = "id", required = true) Long id){ logger.info("---ENTRANDO-A--desaprobarTmpUsuario---"); logger.debug("ID A DESAPROBAR: "+id); Map model = new HashMap(); try{ tmpUsuariosManager.removeLamTmpUsuario(id); model.put("success", true); logger.debug("---Se ha desaprobado al user correctamente---"); } catch(Exception e){ logger.debug("---Ha ocurrido un error al momento de desaprobar al user---"); model.put("success", false); model.put("errors.code","Error en la desaprobación del cliente"); } //return new ModelAndView("UsuarioDesaprobado"); return new ModelAndView(new JsonView(), JsonView.JSON_KEY_MAP, model); } }