예제 #1
0
        public bool AtualizarSenhaAgenciaUsuario(SenhaViewModel model)
        {
            var status  = false;
            var manager = _userManager;

            model.Code = _userManager.GeneratePasswordResetToken(model.UsuarioId);
            var user = manager.FindById(model.UsuarioId);

            var result = _userManager.ResetPassword(model.UsuarioId, model.Code.ToString(), model.Password);

            if (result.Succeeded)
            {
                status = true;
                var agenciausuario = ObterAgenciaUsuarioEditarPorId(Guid.Parse(user.Id));
                DomainEvent.Raise(new AgenciaUsuarioEvent(Guid.Parse(usuario), nomeusuario, agenciausuario.UsuarioId.ToString(), agenciausuario.Nome, agenciausuario.CPF, agenciausuario.ClaimValue, "ALTERAR SENHA"));
            }
            else
            {
                var errosBr          = new List <string>();
                var notificationList = new List <DomainNotification>();
                foreach (var erro in result.Errors)
                {
                    string erroBr;
                    if (erro.Contains("Senha incorreta."))
                    {
                        erroBr = "Senha atual está incorreta.";
                        notificationList.Add(new DomainNotification("IdentityValidation", erroBr));
                        errosBr.Add(erroBr);
                    }
                    if (erro.Contains("As senhas devem ter pelo menos um dígito ('0'-'9')."))
                    {
                        erroBr = "A senha precisa ter ao menos um dígito";
                        notificationList.Add(new DomainNotification("IdentityValidation", erroBr));
                        errosBr.Add(erroBr);
                    }
                    if (erro.Contains("As senhas devem ter pelo menos um caractere que não seja letra ou um caractere de dígito."))
                    {
                        erroBr = "A senha precisa ter ao menos um caractere especial (@, #, etc...)";
                        notificationList.Add(new DomainNotification("IdentityValidation", erroBr));
                        errosBr.Add(erroBr);
                    }
                    if (erro.Contains("As senhas devem ter pelo menos um caractere em letra minúscula ('a'-'z')."))
                    {
                        erroBr = "A senha precisa ter ao menos uma letra em minúsculo";
                        notificationList.Add(new DomainNotification("IdentityValidation", erroBr));
                        errosBr.Add(erroBr);
                    }
                    if (erro.Contains("As senhas devem ter pelo menos um caractere em letra maiúscula ('A'-'Z')."))
                    {
                        erroBr = "A senha precisa ter ao menos uma letra em maiúsculo";
                        notificationList.Add(new DomainNotification("IdentityValidation", erroBr));
                        errosBr.Add(erroBr);
                    }
                }
                notificationList.ForEach(DomainEvent.Raise);
                result = new IdentityResult(errosBr);
            }

            return(status);
        }
예제 #2
0
        public ActionResult Index(SenhaViewModel model)
        {
            var senha = new Senha(string.IsNullOrEmpty(model.Valor) ? string.Empty : model.Valor);

            return(Json(new SenhaViewModel {
                Valor = senha.Valor, Score = senha.Score, Complexidade = senha.Complexidade
            }));
        }
        public void AtulizarSenha(SenhaViewModel Atlzsenha)
        {
            var userDB = ctx.Usuario.Find(Atlzsenha.Id);

            userDB.Senha = Atlzsenha.Senha;

            ctx.Usuario.Update(userDB);
            ctx.SaveChanges();
        }
예제 #4
0
        public ActionResult TrocarSenha(int id)
        {
            if (id != UsuarioLogado.IdUsuario)
            {
                Seguranca.ValidaAcesso(4);
            }

            var s = new SenhaViewModel();

            s.Id = id;
            return(View(s));
        }
예제 #5
0
        public async Task <bool> TrocarSenha(int id, SenhaViewModel senha)
        {
            bool resultado = senha.Senha.Equals(senha.SenhaRepetida);

            if (resultado)
            {
                var usuario = await _context.Usuarios.Where(x => x.Id == id).FirstOrDefaultAsync();

                usuario.Senha = senha.Senha;
                _context.Update(usuario);
                await _context.SaveChangesAsync();
            }
            return(resultado);
        }
예제 #6
0
        public ActionResult AtualizarSenha(SenhaViewModel AtlzSenha)
        {
            var user = _usuarioRepository.BuscarPorId(AtlzSenha.Id);

            if (user == null)
            {
                return(NotFound("Usuario não encontrado!"));
            }

            if (user.Senha == AtlzSenha.Senha)
            {
                return(StatusCode(304, "Nada alterado senhas igual a anterior"));
            }

            _usuarioRepository.AtulizarSenha(AtlzSenha);
            return(StatusCode(202, "Senha Alterada!"));
        }
        public ActionResult AlterarSenha(SenhaViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (_agenciaappservice.AtualizarSenhaAgenciaUsuario(model) == false)
                {
                    ValidarErrosDominio();
                }
                else
                {
                    contador = 1;

                    string url = Url.Action("ListarUsuarios", "AgenciaUsuario", new { id = model.UsuarioId });
                    return(Json(new { success = true, url = url }));
                }
            }

            return(PartialView("_AlterarSenha", model));
        }
예제 #8
0
        public async Task <IActionResult> TrocarSenha([FromBody] SenhaViewModel senha, [FromHeader] string authorization)
        {
            var usuario = await _tokenService.ExtractUsuarioToken(authorization);

            User user = await _userManager.FindByNameAsync(usuario.Email);

            if (user is null)
            {
                return(BadRequest(""));
            }

            user.PasswordHash = _userManager.PasswordHasher.HashPassword(user, senha.Senha);
            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                await _usuarioRepository.TrocarSenha(usuario.Id, senha);
            }
            return(Ok(result.Succeeded));
        }
예제 #9
0
        public ActionResult TrocarSenha(SenhaViewModel senha)
        {
            if (senha.Id != UsuarioLogado.IdUsuario)
            {
                Seguranca.ValidaAcesso(4);
            }

            /*if (senha.SenhaNova != Seguranca.Encode(senha.SenhaNovaRepeticao))
             * {
             *  ModelState.AddModelError("SenhaNova", "Senha nova não confere com a senha repetida");
             * }*/
            if (ModelState.IsValid)
            {
                var usuario = db.Usuarios.Where(u => u.Id == senha.Id).First();
                usuario.Senha           = senha.SenhaNova;
                usuario.TrocarSenha     = false;
                db.Entry(usuario).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(senha));
        }