public async Task <IActionResult> Login([FromForm] UserCreationVM vm) { if (!ModelState.IsValid) { TempData["error"] = "Invalid input for creation"; _logger.LogInformation("Invalid input for creation"); return(Redirect("/accounts/login")); } AppUser user = await _userManager.FindByNameAsync(vm.Nickname); if (user == null) { TempData["error"] = "Nickname or password invalid"; _logger.LogInformation("Nickname not found"); return(Redirect("/accounts/login")); } bool match = await _signInManager.UserManager.CheckPasswordAsync(user, vm.Password); if (!match) { TempData["error"] = "Nickname or password invalid"; _logger.LogInformation("Password no match"); return(Redirect("/accounts/login")); } await _signInManager.SignInAsync(user, isPersistent : false); return(Redirect("/users/dashboard")); }
public async Task <IActionResult> Register([FromForm] UserCreationVM vm) { if (!ModelState.IsValid) { TempData["error"] = "Invalid input for creation"; _logger.LogInformation("Invalid input for creation"); return(Redirect("/accounts/register")); } if (vm.Password != vm.ConfirmPassword) { TempData["error"] = "Password dont match"; _logger.LogInformation("Passwords input dont match"); return(Redirect("/accounts/register")); } AppUser user = new AppUser { Nickname = vm.Nickname, UserName = vm.Nickname }; var result = await _userManager.CreateAsync(user, vm.Password); if (!result.Succeeded) { TempData["error"] = "An error ocurred, try again"; _logger.LogError("Error while registering an user"); return(Redirect("/accounts/register")); } return(Redirect("/accounts/login")); }
/// <summary> /// Creates a new user. /// </summary> public async Task <UserVM> CreateAsync(UserCreationVM vm) { await ValidateAsync(vm.UserInfo); await ValidateAsync(vm.PasswordInfo); var user = _mapper.Map <AppUser>(vm.UserInfo); user.Id = Guid.NewGuid().ToString(); var result = await _userMgr.CreateAsync(user, vm.PasswordInfo.Password); if (!result.Succeeded) { throw new OperationException(result.Errors.First().Description); } return(_mapper.Map <UserVM>(user)); }
public async Task <UserVM> CreateUserAsync(UserCreationVM userCreation) { bool isUsernameUnique = await _userRepository.IsUsernameUniqueAsync(userCreation.Username); if (!isUsernameUnique) { return(null); } var dbUser = _mapper.Map <User>(userCreation); bool userAdded = await _userRepository.AddAsync(dbUser); if (userAdded) { return(_mapper.Map <UserVM>(dbUser)); } return(null); }
public async Task <IActionResult> Register([FromBody] UserCreationVM model) { if (model == null || !ModelState.IsValid) { return(BadRequest("Invalid user creation data.")); } model.Password = _securityService.EncryptPassword(model.Password); var user = await _userService.CreateUserAsync(model); if (user == null) { return(BadRequest("Username is not unique.")); } var authToken = _securityService.GenerateAuthToken(user); var loggedInUser = new LoggedInUserVM(user, authToken); return(Ok(loggedInUser)); }
public Task <UserVM> Create([FromBody] UserCreationVM vm) { return(_userMgr.CreateAsync(vm)); }