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")); }
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)); }
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)); }