Ejemplo n.º 1
0
        public async Task <IActionResult> PutPassword([FromServices] IMediatorHandler bus, [FromRoute]  Guid idUsuario,
                                                      [FromBody] AlterarSenhaModel alterarSenha)
        {
            var response = await bus.SendCommand(new ChangePasswordCommand(idUsuario, alterarSenha.Senha, alterarSenha.ConfirmaSenha));

            return(Response(response));
        }
Ejemplo n.º 2
0
        public string ChangePassword(AlterarSenhaModel senhas)
        {
            var claims = (RequestContext.Principal as ClaimsPrincipal).Claims;
            var id     = int.Parse(claims.FirstOrDefault(c => c.Type == "id_user").Value);

            return(userService.ChangePassword(id, senhas.SenhaAtual, senhas.NovaSenha));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> AlterarSenha(AlterarSenhaModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            ModelState.Clear();

            try
            {
                var data = new AuthDataFromPassPhrase
                {
                    UserIdentity = model.Login,
                    KeyContent   = model.Senha,
                    SystemCode   = settings.IdSistema
                };

                await authService.ChangePassword(data, model.NovaSenha, model.ConfirmacaoSenha, settings.KeyCrypto);

                ShowSuccessMessage("Senha alterada com sucesso");
                return(View());
            }
            catch (Exception ex)
            {
                ShowErrorMessage(ex);
            }

            return(View());
        }
Ejemplo n.º 4
0
        public ActionResult AlterarSenha(AlterarSenhaModel senhaModel)
        {
            WorkLifetimeManager.Value.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                var usuarioId = new UsuarioLogado().UsuarioId;

                var usuario = UsuarioRepositorio.Obter(WorkLifetimeManager.Value, usuarioId);
                if (usuario == null)
                {
                    throw new InvalidOperationException(string.Format("Não foi possível encontrar usuário com id: {0}.", usuarioId));
                }

                var senhaCodificada = Convert.ToBase64String(new SHA512Managed().ComputeHash(Encoding.ASCII.GetBytes(senhaModel.NovaSenha)));

                usuario.Senha = senhaCodificada;
                usuario.DeveDefinirNovaSenha = false;

                UsuarioRepositorio.Salvar(WorkLifetimeManager.Value, usuario);
                WorkLifetimeManager.Value.Commit();

                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception ex)
            {
                WorkLifetimeManager.Value.Rollback();
                return(View("RedefinirSenha", new AlterarSenhaModel {
                    MensagemErro = ex.Message
                }));
            }
        }
Ejemplo n.º 5
0
        public IActionResult EditarSenha(AlterarSenhaModel senhaModel)
        {
            var email = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value;

            Cliente clienteDb = _facade.Query <Cliente>(c => c.Usuario.Email == email,
                                                        c => c,
                                                        c => c.Usuario).FirstOrDefault();

            _vh = new AlterarSenhaViewHelper
            {
                ViewModel = senhaModel
            };

            Cliente clienteSenhaNova  = (Cliente)_vh.Entidades[typeof(Cliente).Name];
            Cliente clienteSenhaVelha = (Cliente)_vh.Entidades[$"{typeof(Cliente).Name}Antigo"];

            string senhaNova  = clienteSenhaNova.Usuario.Senha;
            string senhaVelha = clienteSenhaVelha.Usuario.Senha;

            if (GerenciadorLogin.comparaSenha(senhaVelha, clienteDb.Usuario.Senha))
            {
                clienteDb.Usuario.Senha = senhaNova;
                string msg = _facade.Editar(clienteDb);
                if (msg == "")
                {
                    return(RedirectToAction(nameof(Detalhes)));
                }
                TempData["Alert"] = msg;
            }

            return(RedirectToAction(nameof(Detalhes)));
        }
Ejemplo n.º 6
0
        protected override void ToViewModel()
        {
            Cliente cliente = (Cliente)Entidades[typeof(Cliente).Name];

            AlterarSenhaModel vm = new AlterarSenhaModel
            {
                VelhaSenha = cliente.Usuario.Senha,
                Codigo     = cliente.Codigo
            };

            vm.VelhaSenha = cliente.Usuario.Senha;

            _viewModel = vm;
        }
Ejemplo n.º 7
0
        //GET Conta/_EditarSenhaPartial
        public IActionResult _EditarSenhaPartial(int id)
        {
            string codigo = _facade.Query <Cliente>(c => c.Codigo == id.ToString(),
                                                    c => c,
                                                    c => c.Usuario).FirstOrDefault().Codigo;

            if (codigo == null)
            {
                return(PartialView("../Conta/PartialViews/_ErroPartial"));
            }

            AlterarSenhaModel vm = new AlterarSenhaModel
            {
                Codigo = codigo
            };

            return(PartialView("../Conta/PartialViews/_EditarSenhaPartial", vm));
        }
Ejemplo n.º 8
0
        public ActionResult AlterarSenha(AlterarSenhaModel alterarSenhaModel)
        {
            if (ModelState.IsValid)
            {
                var usuarioId = int.Parse(Session["UsuarioId"].ToString());
                var usuario   = db.Usuarios.Find(usuarioId);

                if (usuario.Senha != alterarSenhaModel.SenhaAtual)
                {
                    ModelState.AddModelError("SenhaAtual", "Senha atual não confere.");
                    return(View());
                }

                usuario.Senha = alterarSenhaModel.NovaSenha;
                db.SaveChanges();

                ViewBag.Success = "Senha alterada com sucesso!";
                ModelState.Clear();
            }

            return(View());
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Apenas altera a senha de acesso do usuário. Somente o usuário logado poderá alterar sua senha.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool AlterarSenha(AlterarSenhaModel model)
        {
            if (model.IdUsuario != GetLoggedUser().IdUsuario)
            {
                throw new BusinessException("Não é permitido alterar a senha de outro usuário");
            }
            if (model.Senha != model.Confirmar)
            {
                throw new BusinessException("As senhas informadas não conferem");
            }

            using (var context = new DatabaseContext())
            {
                var entity = context.Usuario.FirstOrDefault(a => a.IdUsuario == model.IdUsuario);
                if (entity == null)
                {
                    throw new BusinessException("Usuário não encontrado");
                }

                entity.Senha              = PasswordHash.CreateHash(model.Senha);
                entity.SenhaSalt          = PasswordHash.CreateSalt();
                entity.DataHoraAlteracao  = DateTime.Now;
                entity.IdUsuarioAlteracao = GetLoggedUser().IdUsuario;
                entity.PrimeiroAcesso     = false;

                context.Entry(entity).State = EntityState.Modified;

                var result = context.SaveChanges() > 0;
                if (result)
                {
                    RegistrarLogAtividade(entity, ALTERAR_SENHA);
                }

                return(result);
            }
        }
Ejemplo n.º 10
0
        protected override void ToEntidade()
        {
            AlterarSenhaModel vm      = (AlterarSenhaModel)ViewModel;
            Cliente           cliente = new Cliente
            {
                Codigo = vm.Codigo
            };

            Usuario user = new Usuario
            {
                Senha = vm.Senha
            };

            cliente.Usuario = user;

            Entidades[typeof(Cliente).Name]            = cliente;
            Entidades[$"{typeof(Cliente).Name}Antigo"] = new Cliente
            {
                Usuario = new Usuario
                {
                    Senha = vm.VelhaSenha
                }
            };
        }