示例#1
0
        public ActionResult IngresarPreguntasSeguridad(bool respuesta = false)
        {
            var lnUsuario    = new LNUsuario();
            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.respuesta = respuesta;
            return(View(adminSistema));
        }
示例#2
0
        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));
            }
        }