예제 #1
0
        public async Task <IActionResult> Login(Usuario usuario)
        {
            if (ModelState.IsValid)
            {
                var verificarExistencia = await _usuarioServicio.VerificarAcceso(usuario.Nombre, usuario.Password);

                if (verificarExistencia)
                {
                    if (await _usuarioServicio.VerificarBloqueo(usuario.Nombre))
                    {
                        ModelState.AddModelError("inexistente", $"El usuario {usuario.Nombre} se encuentra bloqueado.");
                        return(View());
                    }

                    var datosUsuario = await _usuarioServicio.GetByUser(usuario.Nombre);

                    IdentidadUsuarioLogin.EstaLogueado = true;
                    IdentidadUsuarioLogin.EmpleadoId   = datosUsuario.PersonaId;
                    IdentidadUsuarioLogin.UsuarioId    = datosUsuario.Id;
                    IdentidadUsuarioLogin.Nombre       = datosUsuario.NombrePersona;
                    IdentidadUsuarioLogin.Apellido     = datosUsuario.ApellidoPersona;

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("inexistente", "Usuario y/o contraseña incorrectos.");
                    return(View());
                }
            }

            return(View(usuario));
        }