Exemplo n.º 1
0
        public async Task <IActionResult> Create(Usuario usuario, string NivelAcessoId)
        {
            if (ModelState.IsValid)
            {
                usuario.NormalizedUserName = usuario.UserName.ToUpper();
                usuario.NormalizedEmail    = usuario.Email.ToUpper();
                var senhaCriptografada = Criptografia.Codifica(usuario.PasswordHash);
                usuario.PasswordHash = senhaCriptografada;
                if (ValidarCPF(usuario.CPF))
                {
                    ModelState.AddModelError("CPF", "CPF já cadastrado");
                    ViewData["NivelAcessoId"] = new SelectList(_contexto.NiveisAcessos, "Name", "Name");
                    ViewData["SetorId"]       = new SelectList(_contexto.Setores, "SetorId", "Descricao");
                    var listStatuss = new SelectList(new[]
                    {
                        new{ ID = "true", NAME = "Ativo" },
                        new{ ID = "false", NAME = "Inativo" },
                    }, "ID", "NAME");
                    ViewData["StatusId"] = listStatuss;
                    return(View(usuario));
                }
                _logger.LogInformation("Adicionando usuário");
                await _usuarioRepositorio.Inserir(usuario);

                _logger.LogInformation("Usuário Adicionado");


                if (NivelAcessoId != null)
                {
                    _logger.LogInformation("Atribuindo nível de acesso ao usuárioa adicionado");
                    await _usuarioRepositorio.AtribuirNivelAcesso(usuario, NivelAcessoId);
                }
                TempData["Mensagem"] = "Adicionado com sucesso";
                return(RedirectToAction("Index"));
            }

            ViewData["NivelAcessoId"] = new SelectList(_contexto.NiveisAcessos, "Name", "Name");
            ViewData["SetorId"]       = new SelectList(_contexto.Setores, "SetorId", "Descricao");
            var listStatus = new SelectList(new[]
            {
                new{ ID = "true", NAME = "Ativo" },
                new{ ID = "false", NAME = "Inativo" },
            }, "ID", "NAME");

            ViewData["StatusId"] = listStatus;
            _logger.LogError("Informações Inválidas");
            return(View(usuario));
        }
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult <UserToken> > Create([FromBody] RegistroViewModel registro)
        {
            if (ModelState.IsValid)
            {
                var usuario = new Usuario
                {
                    UserName     = registro.NomeUsuario,
                    Email        = registro.Email,
                    CPF          = registro.CPF,
                    Telefone     = registro.Telefone,
                    Nome         = registro.Nome,
                    PasswordHash = registro.Senha
                };

                //_logger.LogInformation("Tentando criar um usuário");
                var resultado = await _usuarioRepositorio.SalvarUsuario(usuario, registro.Senha);


                if (resultado.Succeeded)
                {
                    var nivelAcesso = "Usuario";

                    await _usuarioRepositorio.AtribuirNivelAcesso(usuario, nivelAcesso);

                    await _usuarioRepositorio.EfetuarLogin(usuario, false);

                    return(new ObjectResult("cadastrado"));
                }
                else
                {
                    return(new ObjectResult("falou"));
                }

                /*
                 * var usuario = await _usuarioRepositorio.PegarUsuarioPeloEmail(login.Email);
                 * PasswordHasher<Usuario> passwordHasher = new PasswordHasher<Usuario>();
                 *
                 * if (usuario != null)
                 * {
                 *  if (passwordHasher.VerifyHashedPassword(usuario, usuario.PasswordHash, login.Senha) != PasswordVerificationResult.Failed)
                 *  {
                 *      await _usuarioRepositorio.EfetuarLogin(usuario, false);
                 *
                 *      return await BuildToken(login);
                 *  }
                 *  return new ObjectResult("falhou");
                 * }
                 */
            }
            return(new ObjectResult("falhou"));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Registro(RegistroViewModel registro)
        {
            if (ModelState.IsValid)
            {
                var usuario = new Usuario
                {
                    UserName     = registro.NomeUsuario,
                    Email        = registro.Email,
                    CPF          = registro.CPF,
                    Telefone     = registro.Telefone,
                    Nome         = registro.Nome,
                    PasswordHash = registro.Senha
                };

                _logger.LogInformation("Tentando criar um usuário");
                var resultado = await _usuarioRepositorio.SalvarUsuario(usuario, registro.Senha);

                if (resultado.Succeeded)
                {
                    _logger.LogInformation("Novo usuário criado");
                    _logger.LogInformation("Atribuindo nivel de acesso ao novo usuário");
                    var nivelAcesso = "Cliente";

                    await _usuarioRepositorio.AtribuirNivelAcesso(usuario, nivelAcesso);

                    _logger.LogInformation("Atribuição concluida");

                    _logger.LogInformation("Logando o usuário");
                    await _usuarioRepositorio.EfetuarLogin(usuario, false);

                    _logger.LogInformation("Usuário logado com sucesso");

                    return(RedirectToAction("Index", "Usuarios"));
                }

                else
                {
                    _logger.LogError("Erro ao criar usuário");

                    foreach (var erro in resultado.Errors)
                    {
                        ModelState.AddModelError("", erro.Description.ToString());
                    }
                }
            }

            _logger.LogError("Informações de usuário inválidas");
            return(View(registro));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Registrar(RegistroViewModel registro)
        {
            if (ModelState.IsValid)
            {
                var usuario = new Usuario()
                {
                    Nome         = registro.Nome,
                    Telefone     = registro.Telefone,
                    Cpf          = registro.Cpf,
                    Email        = registro.Email,
                    UserName     = registro.NomeUsuario,
                    PasswordHash = registro.Senha
                };

                _logger.LogInformation("Registrando novo usuario...");

                var result = await _usuarioRepositorio.SalvarUsuario(usuario, registro.Senha);

                if (result.Succeeded)
                {
                    _logger.LogInformation("Registro feito com sucesso...");
                    _logger.LogInformation("Definindo nivel de acesso de novo usuario..");

                    var nivelAcesso = "Administrador";
                    await _usuarioRepositorio.AtribuirNivelAcesso(usuario, nivelAcesso);

                    _logger.LogInformation("Atribuicao ok..");

                    _logger.LogInformation("Realizando login automatico pós registro...");
                    await _usuarioRepositorio.EfetuarLogin(usuario, false);

                    _logger.LogInformation("Novo usuario logado com sucesso...");

                    return(RedirectToAction("Inicio", "Usuario"));
                }
                else
                {
                    _logger.LogInformation("Não possivel realizar novo registro...");

                    foreach (var erro in result.Errors)
                    {
                        ModelState.AddModelError("", erro.Description.ToString());
                    }
                }
            }
            _logger.LogInformation("Informações de usuario inválidas.");
            //Se não válido model
            return(View(registro));
        }