public async Task <IActionResult> Register(UserForRegistrationDto newUser) { newUser.Username = newUser.Username.ToLower(); var userToCreate = _mapper.Map <User>(newUser); IdentityResult createUsrResult = await _userManager.CreateAsync(userToCreate, newUser.Password); if (!createUsrResult.Succeeded) { return(BadRequest(createUsrResult.Errors)); } IdentityResult addRoleResult = await _userManager.AddToRoleAsync(userToCreate, RoleNames.Member); if (!addRoleResult.Succeeded) { return(BadRequest(addRoleResult.Errors)); } userToCreate = await _authRepo.CreateFirstEnvironment(userToCreate); var token = await _userManager.GenerateEmailConfirmationTokenAsync(userToCreate); await _mailer.SendConfirmationMail(userToCreate.Id, userToCreate.Email, token, false); var userToReturn = _mapper.Map <UserForEditDto>(userToCreate); Response.ExposeHeader("location"); return(CreatedAtRoute(nameof(UsersController.GetUser), new { controller = "Users", id = userToReturn.Id }, userToReturn)); }
public async Task <IActionResult> SetEmailAddress(int userId, [FromBody] ProfileChangeDto changesDto) { if (!this.VerifyUser(userId)) { return(Unauthorized()); } User user = await _repo.GetUser(userId); string token = await _userManager.GenerateChangeEmailTokenAsync(user, changesDto.EMail); await _mailer.SendConfirmationMail(user.Id, changesDto.EMail, token, true); return(Ok()); }