/// <summary> /// /// </summary> /// <returns></returns> public ActionResult Index() { var usuario = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current); if (usuario != null) { var lnUsuario = new LNUsuario(); var objUsuario = new EDUsuarioSistema(); objUsuario.Documento = usuario.Login; objUsuario.Clave = usuario.ClaveAcceso; objUsuario.DocumentoEmpresa = usuario.NitEmpresa; ServiceClient.EliminarParametros(); var resultado = lnUsuario.AutenticarUsuario(objUsuario); if (Session["pkempresa"] == null) { Session["pkempresa"] = usuario.IdEmpresa; Session["idrol"] = resultado.IdRol; Session["RecursosPorRol"] = lnUsuario.ObtenerRecursosPorRol(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolModel { Controlador = rs.Controlador, Accion = rs.Accion }).ToList(); Session["RecursosPorRolMostrar"] = lnUsuario.ObtenerRecursosPorRolMenu(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolMenuModel { NombreRecursoSistema = rs.NombreRecursoSistema, IdRecursoSistema = rs.IdRecursoSistema }).ToList(); } ViewBag.idempresa = usuario.IdEmpresa; ViewBag.Message = "Herramienta web de apoyo para la gestión realizada por las empresas afiliadas a POSITIVA frente a una auditoría del SG-SST, basado en el Decreto 1072/2015 y Resolución 1111/2017"; ViewBag.MetaKeywords = "Herramienta web de apoyo para la gestión realizada por las empresas afiliadas a POSITIVA frente a una auditoría del SG-SST, basado en el Decreto 1072/2015 y Resolución 1111/2017"; ViewBag.MetaDescription = "Herramienta web de apoyo para la gestión realizada por las empresas afiliadas a POSITIVA frente a una auditoría del SG-SST, basado en el Decreto 1072/2015 y Resolución 1111/2017"; return(View()); } else { return(RedirectToAction("Login", "Home")); } }
public ActionResult Login(UsuarioSessionModel usuario) { SG_SSTContext db = new SG_SSTContext(); if (ModelState.IsValid) { var lnUsuario = new LNUsuario(); LNRegistroIngresoSistema lnRegistroIngresoSistema = new LNRegistroIngresoSistema(); var objUsuario = new EDUsuarioSistema(); objUsuario.Documento = usuario.Login; objUsuario.Clave = usuario.ClaveAcceso; objUsuario.DocumentoEmpresa = usuario.NitEmpresa; ServiceClient.EliminarParametros(); //var resultado = ServiceClient.RealizarPeticionesPostJsonRestFul<EDUsuarioSistema>(urlServicioAutenticacion, capacidadAutenticacion, objUsuario); var resultado = lnUsuario.AutenticarUsuario(objUsuario); if (resultado != null) { SG_SST.Reportes.RecursoParametros.NitEmpresa = ""; usuario.IdEmpresa = resultado.CodEmpresa; usuario.NitEmpresa = resultado.DocumentoEmpresa; usuario.RazonSocialEmpresa = resultado.RazonSocial; usuario.IdUsuario = resultado.IdUsuarioSistema; usuario.Login = resultado.Documento; usuario.RolSistema = resultado.IdRol; usuario.NombreUsuario = resultado.Nombres + " " + resultado.Apellidos; usuario.Documento = resultado.Documento; usuario.CantidadDiasLaborales = 5; usuario.PrimerAcceso = resultado.PrimerAcceso; usuario.SiglaTipoDocumentoEmpleado = resultado.TipoDocumentoSigla; usuario.SiglaTipoDocumentoEmpresa = resultado.TipoDocumentoSiglaEmpresa; usuario.NombreRol = resultado.NombreRol; usuario.FechaCreacion = resultado.PeriodoInactividad.AddDays(-30); GuardarSesionUsuario(usuario); Session["pkempresa"] = usuario.IdEmpresa; Session["RecursosPorRol"] = lnUsuario.ObtenerRecursosPorRol(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolModel { Controlador = rs.Controlador, Accion = rs.Accion }).ToList(); Session["RecursosPorRolMostrar"] = lnUsuario.ObtenerRecursosPorRolMenu(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolMenuModel { NombreRecursoSistema = rs.NombreRecursoSistema, IdRecursoSistema = rs.IdRecursoSistema }).ToList(); Session["idrol"] = resultado.IdRol; return(RedirectToAction("Index")); if (resultado.Activo == true && resultado.EstadoUsuario == (int)Enumeraciones.EnumAdministracionUsuarios.EstadosUsuario.Activo) { var resultadoEmp = 0; var resultadoAfil = 0; //se valida que el usuario no tenga rol asesor sst. de lo contrario no se debe validar la relación laboral if (resultado.IdRol != (int)Enumeraciones.EnumAdministracionUsuarios.RolesSistema.AsesorSST) { ConsultarAfiliadoEmpresaActivos(resultado.TipoDocumentoSiglaEmpresa, resultado.DocumentoEmpresa, resultado.TipoDocumentoSigla, resultado.Documento, out resultadoEmp, out resultadoAfil); //la empresa existe y se encuentra activa if (resultadoEmp == (int)Enumeraciones.EnumAdministracionUsuarios.ValidaEstadoEmpAfi.ExisteActivoEmp) { //el empleado existe y se encuentra activo if (resultadoAfil == (int)Enumeraciones.EnumAdministracionUsuarios.ValidaEstadoEmpAfi.ExisteActivoAfi) { if (resultado.PreguntasSeguridad.Count() > 0) { SG_SST.Reportes.RecursoParametros.NitEmpresa = ""; usuario.IdEmpresa = resultado.CodEmpresa; usuario.NitEmpresa = resultado.DocumentoEmpresa; usuario.RazonSocialEmpresa = resultado.RazonSocial; usuario.IdUsuario = resultado.IdUsuarioSistema; usuario.Login = resultado.Documento; usuario.RolSistema = resultado.IdRol; usuario.NombreUsuario = resultado.Nombres + " " + resultado.Apellidos; usuario.Documento = resultado.Documento; usuario.CantidadDiasLaborales = 5; usuario.PrimerAcceso = resultado.PrimerAcceso; usuario.SiglaTipoDocumentoEmpleado = resultado.TipoDocumentoSigla; usuario.SiglaTipoDocumentoEmpresa = resultado.TipoDocumentoSiglaEmpresa; usuario.NombreRol = resultado.NombreRol; usuario.FechaCreacion = resultado.PeriodoInactividad.AddDays(-30); GuardarSesionUsuario(usuario); Session["pkempresa"] = usuario.IdEmpresa; Session["RecursosPorRol"] = lnUsuario.ObtenerRecursosPorRol(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolModel { Controlador = rs.Controlador, Accion = rs.Accion }).ToList(); Session["RecursosPorRolMostrar"] = lnUsuario.ObtenerRecursosPorRolMenu(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolMenuModel { NombreRecursoSistema = rs.NombreRecursoSistema, IdRecursoSistema = rs.IdRecursoSistema }).ToList(); Session["idrol"] = resultado.IdRol; if (usuario.PrimerAcceso) { return(RedirectToAction("CambiarClave", "AdminUsuarios")); } else { EDRegistroIngresoSistema reg = new EDRegistroIngresoSistema() { FK_Empresa = resultado.CodEmpresa, FK_UsuarioSistema = resultado.IdUsuarioSistema, FechaTransaccion = DateTime.Now }; var res = lnRegistroIngresoSistema.GuardarRegistroIngresoSistema(reg); return(RedirectToAction("Index")); } } else { var adminSistema = new AdministrarUsuariosModel(); adminSistema.TiposDocumento = lnUsuario.ObtenerTiposDocumento().Select(td => new SelectListItem() { Value = td.Sigla, Text = td.Descripcion }).ToList(); adminSistema.ConfiguracionPreguntasSeguridad = new ConfiguracionPreguntasSeguridad() { PreguntasSeguridad = lnUsuario.ObtenerPreguntasSeguridad().Select(ps => new SelectListItem() { Value = ps.IdPreguntaSeguridad.ToString(), Text = ps.NombrePreguntaSeguridad }).ToList() }; ViewBag.DocEmpresa = resultado.TipoDocumentoSiglaEmpresa; ViewBag.DocPersona = resultado.TipoDocumentoSigla; ViewBag.NumeroEmpresa = resultado.DocumentoEmpresa; ViewBag.NumeroPersona = resultado.Documento; ViewBag.IdUsuarioSistema = resultado.IdUsuarioSistema; ViewBag.ingresarPreguntas = true; return(View("IngresarPreguntasSeguridad", adminSistema)); } } else if ((int)Enumeraciones.EnumAdministracionUsuarios.ValidaEstadoEmpAfi.NoExisteAfi == resultadoAfil) { TempData["mensajeAutenticacion"] = Recursos.AdministracionUsuarios.MensajesAdministracionUsuarios.EmpleadoNoExisteLogin; } else { TempData["mensajeAutenticacion"] = Recursos.AdministracionUsuarios.MensajesAdministracionUsuarios.EmpleadoInactivoLogin; } } else if ((int)Enumeraciones.EnumAdministracionUsuarios.ValidaEstadoEmpAfi.NoExisteEmp == resultadoEmp) { TempData["mensajeAutenticacion"] = Recursos.AdministracionUsuarios.MensajesAdministracionUsuarios.EmpresaNoExisteLogin; } else { TempData["mensajeAutenticacion"] = Recursos.AdministracionUsuarios.MensajesAdministracionUsuarios.EmpresaInactivaLogin; } }//es rol asesor sst else { if (resultado.PreguntasSeguridad.Count() > 0) { SG_SST.Reportes.RecursoParametros.NitEmpresa = ""; usuario.IdEmpresa = resultado.CodEmpresa; usuario.NitEmpresa = resultado.DocumentoEmpresa; usuario.RazonSocialEmpresa = resultado.RazonSocial; usuario.IdUsuario = resultado.IdUsuarioSistema; usuario.Login = resultado.Documento; usuario.RolSistema = resultado.IdRol; usuario.NombreRol = resultado.NombreRol; usuario.NombreUsuario = resultado.Nombres + " " + resultado.Apellidos; usuario.Documento = resultado.Documento; usuario.CantidadDiasLaborales = 5; usuario.PrimerAcceso = resultado.PrimerAcceso; usuario.SiglaTipoDocumentoEmpleado = resultado.TipoDocumentoSigla; usuario.SiglaTipoDocumentoEmpresa = resultado.TipoDocumentoSiglaEmpresa; GuardarSesionUsuario(usuario); Session["pkempresa"] = usuario.IdEmpresa; Session["RecursosPorRol"] = lnUsuario.ObtenerRecursosPorRol(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolModel { Controlador = rs.Controlador, Accion = rs.Accion }).ToList(); Session["idrol"] = resultado.IdRol; Session["RecursosPorRolMostrar"] = lnUsuario.ObtenerRecursosPorRolMenu(resultado.IdRol, resultado.CodEmpresa).Select(rs => new RecursosPorRolMenuModel { NombreRecursoSistema = rs.NombreRecursoSistema, IdRecursoSistema = rs.IdRecursoSistema }).ToList(); if (usuario.PrimerAcceso) { return(RedirectToAction("CambiarClave", "AdminUsuarios")); } else { EDRegistroIngresoSistema reg = new EDRegistroIngresoSistema() { FK_Empresa = resultado.CodEmpresa, FK_UsuarioSistema = resultado.IdUsuarioSistema, FechaTransaccion = DateTime.Now }; var res = lnRegistroIngresoSistema.GuardarRegistroIngresoSistema(reg); return(RedirectToAction("Index")); } } else { var adminSistema = new AdministrarUsuariosModel(); adminSistema.TiposDocumento = lnUsuario.ObtenerTiposDocumento().Select(td => new SelectListItem() { Value = td.Sigla, Text = td.Descripcion }).ToList(); adminSistema.ConfiguracionPreguntasSeguridad = new ConfiguracionPreguntasSeguridad() { PreguntasSeguridad = lnUsuario.ObtenerPreguntasSeguridad().Select(ps => new SelectListItem() { Value = ps.IdPreguntaSeguridad.ToString(), Text = ps.NombrePreguntaSeguridad }).ToList() }; ViewBag.DocEmpresa = resultado.TipoDocumentoSiglaEmpresa; ViewBag.DocPersona = resultado.TipoDocumentoSigla; ViewBag.NumeroEmpresa = resultado.DocumentoEmpresa; ViewBag.NumeroPersona = resultado.Documento; ViewBag.IdUsuarioSistema = resultado.IdUsuarioSistema; ViewBag.ingresarPreguntas = true; return(View("IngresarPreguntasSeguridad", adminSistema)); } } return(View("Login")); } else { if (resultado.EstadoUsuario == (int)Enumeraciones.EnumAdministracionUsuarios.EstadosUsuario.Eliminado && resultado.IdRol == (int)Enumeraciones.EnumAdministracionUsuarios.RolesSistema.AsesorSST) { TempData["mensajeAutenticacion"] = "Su acceso al sistema ha sido restringido por caducidad de la fecha de autorización, dada por la empresa."; return(View("Login")); } else { TempData["mensajeAutenticacion"] = Recursos.AdministracionUsuarios.MensajesAdministracionUsuarios.UsuarioInactivoPorSistema; return(View("Login")); } } } else { TempData["mensajeAutenticacion"] = "No existe un usuario asociado al documento y clave ingresados."; return(RedirectToAction("Login")); } } else { return(View(usuario)); } }