示例#1
0
        public void AlterarSenha(int codigoUsuario, AlterarSenhaRequest request)
        {
            if (request.SenhaAntiga == request.SenhaNova)
            {
                throw new Exception("A senha antiga é a mesma que a nova");
            }

            if (request.SenhaNova != request.SenhaNovaConfirme)
            {
                throw new Exception("As senhas não são parecidas!");
            }

            try
            {
                unitOfWork.BeginTransaction();

                usuarioRepositorio.AlterarSenha(codigoUsuario, request.SenhaNova);

                unitOfWork.Commit();
            }
            catch
            {
                unitOfWork.Rollback();
                throw;
            }
            finally
            {
                unitOfWork.Dispose();
            }
        }
示例#2
0
        public void Executar()
        {
            Console.WriteLine("Informe seu usuário: ");
            var nomeUsuario = Console.ReadLine();

            Console.WriteLine("Informe sua senha: ");
            var senhaUsuario = Console.ReadLine();

            _usuarioRepositorio.AlterarSenha(new Usuario(nomeUsuario, senhaUsuario));
        }
示例#3
0
        public Usuario AlterarSenha(Guid usuarioId, string novaSenha)
        {
            var usuario = _usuarioRepositorio.ObterPorId(usuarioId);

            usuario.Senha = novaSenha;
            if (!usuario.EstaConsistente())
            {
                return(usuario);
            }

            _usuarioRepositorio.AlterarSenha(usuarioId, novaSenha);
            return(usuario);
        }
示例#4
0
        public ActionResult TrocarSenha(AlterarSenhaViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var usuario = _usuarioRepositorio.ObterUsuarioPorLogin(viewModel.Login);

            if (usuario != null)
            {
                if (!usuario.Externo)
                {
                    ModelState.AddModelError(string.Empty, "Opção disponível apenas para usuários Externos.");
                    return(View(viewModel));
                }

                if (usuario.Ativo == false)
                {
                    ModelState.AddModelError(string.Empty, $"O usuário {usuario.ToString()} está inativo");
                }

                if (!usuario.Autenticar(viewModel.Login, viewModel.SenhaAtual))
                {
                    ModelState.AddModelError(string.Empty, $"A senha atual não confere");
                }

                if (viewModel.NovaSenha != viewModel.ConfirmacaoNovaSenha)
                {
                    ModelState.AddModelError(string.Empty, $"O campo Nova Senha e Confirmação não são iguais");
                }

                if (ModelState.IsValid)
                {
                    using (var ws = new WsControleSenha.Criptografia())
                    {
                        var resultado = ws.alterarSenha(viewModel.NovaSenha, "CRM.TB_CRM_USUARIOS", usuario.LoginExterno);

                        if (resultado != "OK")
                        {
                            ModelState.AddModelError(string.Empty, resultado);
                            return(View(viewModel));
                        }

                        usuario.AlterarSenha(viewModel.NovaSenha);

                        _usuarioRepositorio.AlterarSenha(usuario);

                        TempData["Sucesso"] = true;
                    }
                }

                return(View(viewModel));
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Usuário não encontrado");
            }

            return(View(viewModel));
        }
示例#5
0
        public ActionResult Atualizar([Bind(Include = "Id, Login, LoginExterno, Senha, LoginWorkflow, Nome, Email, CPF, CargoId, Administrador, Externo, Remoto, Ativo, CargoId, ValidarIP")] UsuarioViewModel viewModel, int?id)
        {
            if (id == null)
            {
                return(RedirectToAction(nameof(Index)));
            }

            var usuarioBusca = _usuarioRepositorio.ObterUsuarioPorId(id.Value);

            if (usuarioBusca == null)
            {
                RegistroNaoEncontrado();
            }

            if (ModelState.IsValid)
            {
                var usuario = new Usuario(
                    viewModel.Login,
                    viewModel.LoginExterno,
                    viewModel.Senha,
                    viewModel.LoginWorkflow,
                    viewModel.Nome,
                    viewModel.Email,
                    viewModel.CPF,
                    viewModel.CargoId,
                    viewModel.Administrador,
                    viewModel.Externo,
                    viewModel.Remoto,
                    viewModel.Ativo,
                    viewModel.ValidarIP)
                {
                    Id = usuarioBusca.Id
                };

                if (viewModel.Externo)
                {
                    if (!string.IsNullOrEmpty(usuarioBusca.Senha) && string.IsNullOrEmpty(viewModel.Senha))
                    {
                        usuario.Senha = usuarioBusca.Senha;
                    }
                }

                if (Validar(usuario))
                {
                    var usuarioExistente = _usuarioRepositorio.ObterUsuarioPorLogin(viewModel.Externo
                        ? viewModel.LoginExterno
                        : viewModel.Login);

                    if (usuarioExistente != null && usuarioExistente.Id != usuarioBusca.Id)
                    {
                        ModelState.AddModelError(string.Empty, "Já existe um usuário cadastrado utilizando este login.");
                    }

                    if (viewModel.Externo && !string.IsNullOrEmpty(viewModel.Senha))
                    {
                        if (Criptografia.Encriptar(viewModel.Senha) != usuarioBusca.Senha)
                        {
                            using (var ws = new WsControleSenha.Criptografia())
                            {
                                var resultado = ws.alterarSenha(viewModel.Senha, "CRM.TB_CRM_USUARIOS", viewModel.LoginExterno);

                                if (resultado != "OK")
                                {
                                    ModelState.AddModelError(string.Empty, resultado);

                                    PopularContas(viewModel);
                                    PopularCargos(viewModel);

                                    return(View(viewModel));
                                }

                                usuario.Senha = Criptografia.Encriptar(viewModel.Senha);
                                _usuarioRepositorio.AlterarSenha(usuario);
                            }
                        }
                    }

                    _usuarioRepositorio.Atualizar(usuario);

                    TempData["Sucesso"] = true;

                    GravarLogAuditoria(TipoLogAuditoria.UPDATE, usuario);
                }
            }

            PopularContas(viewModel);
            PopularCargos(viewModel);

            return(View(viewModel));
        }