public Senha TrocarSenha(String senhaAntigaCriptografada, String novaSenhaCriptografada, String confirmaNovaSenhaCriptografada)
        {
            AssegureQue.NaoEhNulo(senhaAntigaCriptografada, "A senha atual informada não pode ser nula");
            AssegureQue.NaoEhVazio(senhaAntigaCriptografada, "A senha atual informada não pode ser vazia");

            AssegureQue.NaoEhNulo(novaSenhaCriptografada, "A nova senha informada não pode ser nula");
            AssegureQue.NaoEhVazio(novaSenhaCriptografada, "A nova senha informada não pode ser vazia (1)");
            AssegureQue.EhDiferente(novaSenhaCriptografada, _senhaVaziaCriptografada, "A nova senha informada não pode ser vazia (2)");

            AssegureQue.NaoEhNulo(confirmaNovaSenhaCriptografada, "A confirmação da nova senha informada não pode ser nula");
            AssegureQue.NaoEhVazio(confirmaNovaSenhaCriptografada, "A confirmação da nova senha informada não pode ser vazia (1)");
            AssegureQue.EhDiferente(confirmaNovaSenhaCriptografada, _senhaVaziaCriptografada, "A confirmação da nova senha informada não pode ser vazia (2)");

            AssegureQue.EhIgual(novaSenhaCriptografada, confirmaNovaSenhaCriptografada, "A confirmação da nova senha não coincide com a nova senha");
            AssegureQue.EhIgual(senhaAntigaCriptografada.Criptografar(), SenhaAtual, "A senha informada não é a senha atual");

            AssegureQue.EhDiferente(senhaAntigaCriptografada, novaSenhaCriptografada, "A nova senha informada não pode ser a mesma senha atual");
            AssegureQue.EhDiferente(senhaAntigaCriptografada, SenhaAtual, "A nova senha informada não pode ser a mesma senha atual");

            var senhaCriptografada   = novaSenhaCriptografada.Criptografar();
            var usouSenhasAnteriores = UltimasSenhas(5).Any(s => s.SenhaCriptografada == senhaCriptografada);

            AssegureQue.EhFalso(usouSenhasAnteriores, "Não é possível trocar a senha por senhas usadas nas últimas 5 trocas de senha");

            var senha = new Senha {
                SenhaCriptografada = senhaCriptografada
            };

            Senhas.Adicionar(senha);

            AssegureQue.EhDiferente(senhaAntigaCriptografada.Criptografar(), SenhaAtual, "A senha antiga continua sendo a senha atual");
            AssegureQue.EhIgual(senhaCriptografada, SenhaAtual, "A nova senha informada não pode ser trocada");

            return(senha);
        }
        public void Gravar(Senha senha)
        {
            var execucao = Transacao.Proteger((transacao, log) =>
            {
                senha.Id = Conexao.ExecuteScalar <Int64>(cInsertIntoSenha, senha, transacao);
                return(senha);
            });

            AssegureQue.NaoHouveErro(execucao, "Houve um problema ao Gravar Usuario");
        }
Esempio n. 3
0
        public override void EhValido()
        {
            AssegureQue.NaoEhNulo(SenhaNova, "A nova senha informada não pode ser nula");
            AssegureQue.NaoEhVazio(SenhaNova, "A nova senha informada não pode ser vazia (1)");
            AssegureQue.EhDiferente(SenhaNova, VaziaCriptografada, "A nova senha informada não pode ser vazia (2)");

            AssegureQue.NaoEhNulo(SenhaNovaConfirma, "A confirmação da nova senha informada não pode ser nula");
            AssegureQue.NaoEhVazio(SenhaNovaConfirma, "A confirmação da nova senha informada não pode ser vazia (1)");
            AssegureQue.EhDiferente(SenhaNovaConfirma, VaziaCriptografada, "A confirmação da nova senha informada não pode ser vazia (2)");

            AssegureQue.EhIgual(SenhaNova, SenhaNovaConfirma, "A confirmação da nova senha não coincide com a nova senha");
        }
        public void Gravar(Usuario usuario)
        {
            usuario.EhValido();
            var execucao = Transacao.Proteger((transacao, log) =>
            {
                var senha  = usuario.Senhas.FirstOrDefault();
                usuario.Id = Conexao.ExecuteScalar <Int32>(cInsertIntoUsuario + Conexao.RDBMS.CmdSqlUltimoIdGerado, usuario, transacao);
                senha.Id   = Conexao.ExecuteScalar <Int64>(cInsertIntoSenha + Conexao.RDBMS.CmdSqlUltimoIdGerado, senha, transacao);
                return(usuario);
            });

            AssegureQue.NaoHouveErro(execucao, "Houve um problema ao Gravar Usuario");
        }
        public void CadastrarUsuario(String nome, String eMail, String celular, String novaSenhaCriptografada, String confirmaNovaSenhaCriptografada)
        {
            var usuario = new Usuario {
                Nome = nome, EMail = eMail, Celular = celular, Inclusao = DateTime.UtcNow
            };

            usuario.DefinirSenhaInicial(novaSenhaCriptografada, confirmaNovaSenhaCriptografada);
            usuario.EhValido();

            var usuarios = Usuarios.ObterPor(usuario);

            AssegureQue.EhVazio(usuarios, "Já existe um usuário cadastrado com este eMail e / ou celular");
            Usuarios.Gravar(usuario);
        }
Esempio n. 6
0
        public override void EhValido()
        {
            AssegureQue.NaoEhNulo(Nome, "O nome do usuário não pode ser nulo");
            AssegureQue.NaoEhVazio(Nome, "O nome do usuário não pode ser vazio");

            AssegureQue.NaoEhNulo(EMail, "O E-Mail do usuário não pode ser nulo");
            AssegureQue.NaoEhVazio(EMail, "O E-Mail do usuário não pode ser vazio");

            AssegureQue.NaoEhNulo(Celular, "O Celular do usuário não pode ser nulo");
            AssegureQue.NaoEhVazio(Celular, "O Celular do usuário não pode ser vazio");

            var senhaAtual = UltimasSenhas(1).FirstOrDefault();

            AssegureQue.NaoEhNulo(senhaAtual, "A senha atual não pode ser nula!");
            senhaAtual.EhValido();
        }
        public void Autenticar(String eMailOuCelular, String senhaCriptografada)
        {
            AssegureQue.NaoEhNulo(eMailOuCelular, "EMail e / ou celular não informado (1)");
            AssegureQue.NaoEhVazio(eMailOuCelular, "EMail e / ou celular não informado (2)");

            var usuario = new Usuario {
                EMail = eMailOuCelular, Celular = eMailOuCelular
            };
            var usuarios = Usuarios.ObterPor(usuario);

            AssegureQue.NaoEhVazio(usuarios, "Usuário não encontrado com este eMail e / ou celular");
            AssegureQue.EhVerdadeiro(usuarios.Count() == 1, "EMail e / ou celular inválido. Confira as informações e tente novamente");

            usuario = Usuarios.ObterPorIdComSenhas(usuarios.First().Id);
            AssegureQue.EhVerdadeiro(usuario.ConfirmarSenha(senhaCriptografada), "A senha informada não confere!");
        }
        public void TrocarSenha(String eMail, String celular, String senhaAntigaCriptografada, String novaSenhaCriptografada, String confirmaNovaSenhaCriptografada)
        {
            var usuarios = Usuarios.ObterPor(new Usuario {
                EMail = eMail, Celular = celular
            });

            AssegureQue.NaoEhNulo(usuarios, "Não foi encontrado um usuário cadastrado com este eMail e / ou celular");
            AssegureQue.EhVerdadeiro(usuarios.Count() == 1, "EMail e / ou celular inválido. Confira as informações e tente novamente");

            var usuario = usuarios.First();

            usuario.Preencher(Usuarios.BuscarSenhas(usuario.Id));
            var senha = usuario.TrocarSenha(senhaAntigaCriptografada, novaSenhaCriptografada, confirmaNovaSenhaCriptografada);

            Usuarios.Gravar(senha);
        }
Esempio n. 9
0
        public Senha TrocarSenha(String senhaAntiga, String senhaNova, String senhaNovaConfirma)
        {
            AssegureQue.NaoEhNulo(senhaAntiga, "A senha atual informada não pode ser nula");
            AssegureQue.NaoEhVazio(senhaAntiga, "A senha atual informada não pode ser vazia");
            AssegureQue.EhIgual(senhaAntiga.Criptografar(), SenhaAtual, "A senha informada não é a senha atual");
            AssegureQue.EhDiferente(senhaAntiga, senhaNova, "A nova senha informada não pode ser a mesma senha atual");
            AssegureQue.EhDiferente(senhaNova.Criptografar(), SenhaAtual, "A nova senha informada não pode ser a mesma senha atual");

            var senha = new Senha(senhaNova, senhaNovaConfirma);

            senha.EhValido();

            var usouSenhasAnteriores = UltimasSenhas(5).Any(s => s.SenhaCriptografada == senha.SenhaCriptografada);

            AssegureQue.EhFalso(usouSenhasAnteriores, "Não é possível trocar a senha por senhas usadas nas últimas 5 trocas de senha");

            Senhas.Adicionar(senha);

            AssegureQue.EhDiferente(SenhaAtual, senhaAntiga.Criptografar(), "A senha antiga continua sendo a senha atual");
            AssegureQue.EhIgual(SenhaAtual, senha.SenhaCriptografada, "A nova senha informada não pode ser trocada");

            return(senha);
        }
Esempio n. 10
0
 public override void EhValido()
 {
     AssegureQue.NaoEhNulo(Usuario, "Usuário não pode ser nulo");
 }
Esempio n. 11
0
 public Senha DefinirSenhaInicial(String novaSenhaCriptografada, String confirmaNovaSenhaCriptografada)
 {
     AssegureQue.EhVazio(Senhas, "Este Usuário já possui uma senha. Não é possível definir nova senha inicial");
     return(TrocarSenha(_senhaNula, novaSenhaCriptografada, confirmaNovaSenhaCriptografada));
 }