Exemplo n.º 1
0
        public async Task <IActionResult> ChangePassword(ChangePasswordViewModel changePasswordViewModel)
        {
            var validateToken = await ValidatedToken(_configuration, _getHelper, "catalogo");

            if (validateToken != null)
            {
                return(validateToken);
            }
            bool band = true;

            if (ModelState.IsValid)
            {
                if (changePasswordViewModel.PasswordEncrypt != changePasswordViewModel.ConfirmPasswordEncrypt)
                {
                    TempData["toast"] = "Contraseñas distintas, verifique su información";
                    band = false;
                }

                var usuario = await _context.Usuarios.FindAsync(token.UsuarioID);

                if (usuario == null)
                {
                    TempData["toast"] = "Identificador incorrecto, usuario inexistente.";
                    band = false;
                }

                if (band)
                {
                    try
                    {
                        usuario.Password = _criptografiaHelper.Encrypt(changePasswordViewModel.PasswordEncrypt);
                        _context.Update(usuario);
                        await _context.SaveChangesAsync();

                        TempData["toast"] = "Su contraseña ha sido actualizada con éxito.";

                        return(RedirectToAction("Sesion", "Menu"));
                    }
                    catch (Exception)
                    {
                        TempData["toast"] = "Error al actualizar el cambio de contraseña.";
                    }
                }
            }
            else
            {
                TempData["toast"] = "Proporcione la contraseña y confirme la información.";
            }

            changePasswordViewModel.ConfirmPassword        = "";
            changePasswordViewModel.ConfirmPasswordEncrypt = "";
            changePasswordViewModel.Password        = "";
            changePasswordViewModel.PasswordEncrypt = "";

            return(View(changePasswordViewModel));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> SignIn([Bind("Email, Password")] InicioSesionViewModel inicioSesionViewModel)
        {
            var validateToken = await ValidatedToken(_configuration, _getHelper, "signin", false);

            if (validateToken != null)
            {
                return(validateToken);
            }

            if (ModelState.IsValid)
            {
                string email = inicioSesionViewModel.Email.Trim().ToLower();

                Usuario usuario = await(from u in _context.Usuarios
                                        join c in _context.Colaboradores
                                        on u.ColaboradorID equals c.ColaboradorID
                                        where c.Email == email
                                        select u).FirstOrDefaultAsync();

                if (usuario == null)
                {
                    TempData["toast"] = "Correo electrónico inexistente, verifique";
                    return(View(inicioSesionViewModel));
                }

                var pwd = _criptografia.Encrypt(inicioSesionViewModel.Password);
                if (usuario.Password != pwd)
                {
                    TempData["toast"] = "Credenciales Incorrectas, verifique";
                    return(View(inicioSesionViewModel));
                }

                HttpContext.Session.SetString("LAMBusiness", HttpContext.Session.Id);
                string sessionId = HttpContext.Session.GetString("LAMBusiness");

                string directorioSesion = _configuration.GetValue <string>("DirectorioSesion");

                var resultado = await _getHelper
                                .SetTokenByUsuarioIDAsync(sessionId, usuario.UsuarioID, directorioSesion);

                if (resultado.Error)
                {
                    ModelState.AddModelError(string.Empty, resultado.Mensaje);
                    return(View(inicioSesionViewModel));
                }

                TempData["toast"] = "¡Qué gusto tenerte de vuelta!";
                await BitacoraAsync("InicioSesion", resultado);

                return(RedirectToAction("Inicio", "menu"));
            }

            ModelState.AddModelError(string.Empty, "Credenciales Incorrectas");
            return(View(inicioSesionViewModel));
        }