Beispiel #1
0
        public ValidadorUsuarioTests()
        {
            _provedorDeCriptografia = ObjectFactory.GetInstance <IProvedorDeCriptografia>();
            _usuariosCadastrados    = new List <Usuario>();

            var usuarioCompradorLogistica = new Usuario("Comprador Logistica", "logistica", null);

            usuarioCompradorLogistica.CriarSenha(_provedorDeCriptografia.Criptografar("123"));
            usuarioCompradorLogistica.AdicionarPerfil(Enumeradores.Perfil.CompradorLogistica);
            _usuariosCadastrados.Add(usuarioCompradorLogistica);

            var usuarioSemSenha = new Usuario("Sem Senha", "semsenha", null);

            usuarioSemSenha.AdicionarPerfil(Enumeradores.Perfil.CompradorSuprimentos);
            _usuariosCadastrados.Add(usuarioSemSenha);

            var usuarioBloqueado = new Usuario("Usuário Bloqueado", "bloqueado", null);

            usuarioBloqueado.CriarSenha(_provedorDeCriptografia.Criptografar("123"));
            usuarioBloqueado.AdicionarPerfil(Enumeradores.Perfil.Fornecedor);
            usuarioBloqueado.Bloquear();
            _usuariosCadastrados.Add(usuarioBloqueado);

            var usuarioSemPerfil = new Usuario("sem perfil", "semperfil", null);

            usuarioSemPerfil.CriarSenha(_provedorDeCriptografia.Criptografar("123"));
            _usuariosCadastrados.Add(usuarioSemPerfil);

            _usuariosMock = new Mock <IUsuarios>(MockBehavior.Strict);
            _usuariosMock.Setup(x => x.BuscaPorLogin(It.IsAny <string>()))
            .Returns((string login) => _usuariosCadastrados.SingleOrDefault(x => x.Login == login));

            _validadorUsuario = new ValidadorUsuario(_usuariosMock.Object, _provedorDeCriptografia);
        }
Beispiel #2
0
        private void CriarSenha(Usuario usuario)
        {
            string senha = _geradorDeSenha.GerarGuid(8);

            _geradorDeEmail.CriacaoAutomaticaDeSenha(usuario, senha);

            string senhaCriptografada = _provedorDeCriptografia.Criptografar(senha);

            usuario.CriarSenha(senhaCriptografada);
            _usuarios.Save(usuario);
        }
Beispiel #3
0
        public UsuarioConectado Validar(string login, string senha)
        {
            Usuario usuario = _usuarios.BuscaPorLogin(login);

            if (usuario == null)
            {
                throw new UsuarioNaoCadastradoException(login);
            }

            if (usuario.Status == Enumeradores.StatusUsuario.Bloqueado)
            {
                throw new UsuarioBloqueadoException(usuario.Login);
            }

            if (string.IsNullOrEmpty(usuario.Senha))
            {
                throw new UsuarioSemSenhaException(usuario.Login);
            }

            if (!usuario.Perfis.Any())
            {
                throw new UsuarioSemPerfilException(usuario.Login);
            }

            string senhaCriptografada = _provedorDeCriptografia.Criptografar(senha);

            if (usuario.Senha == senhaCriptografada)
            {
                return(new UsuarioConectado(usuario.Login, usuario.Nome, usuario.Perfis));
            }
            throw new SenhaIncorretaException("A senha informada está incorreta");
        }
Beispiel #4
0
 public ContentResult Hash(string dado)
 {
     return(Content(_provedorDeCriptografia.Criptografar(dado)));
 }