public async Task <Response> ChangeEmailRequest(UserChangeEmailRequestDTO dto, ClaimsPrincipal claims) { var user = await _provider.GetUserDetail(claims.GetUserId()); if (user.Data == null) { return(new ForbiddenErrorResponse()); } if (user.Data.RoleId != RoleGuid.Admin) { return(new ForbiddenErrorResponse()); } var oldPasswordCorrectResponse = await _tokensService.Authenticate(new CredentialsDTO { Email = user.Data.Email, Password = dto.Password }); if (!oldPasswordCorrectResponse.IsSuccess) { return(oldPasswordCorrectResponse); } var sendConfirmationResponse = await _service.ChangeEmailRequest(user.Data.Id, dto.NewEmail); return(sendConfirmationResponse); }
public async Task <Response <SimpleTokenDTO> > ChangeEmailRequest(UserChangeEmailRequestDTO dto, ClaimsPrincipal claims) { var userResponse = await _provider.GetById(claims.GetUserId()); if (!userResponse.IsSuccess) { return(ErrorResponse.MapResponse <SimpleTokenDTO, UserDTO>(userResponse)); } var oldPasswordCorrectResponse = await _tokensService.Authenticate(new CredentialsDTO { Email = userResponse.Data.Email, Password = dto.Password }); if (!oldPasswordCorrectResponse.IsSuccess) { return(ErrorResponse.MapResponse <SimpleTokenDTO, AuthInfoDTO>(oldPasswordCorrectResponse)); } var sendConfirmationResponse = await _service.ChangeEmailRequest(claims.GetUserId(), dto.NewEmail); if (!sendConfirmationResponse.IsSuccess) { return(ErrorResponse.MapResponse <SimpleTokenDTO>(sendConfirmationResponse)); } var tokenResponse = await _tokensService.CreateCustomToken(5 , "ChangeEmail" , new Dictionary <string, string> { { "email", dto.NewEmail } }); return(tokenResponse); }
public async Task <Response> ChangeEmailRequest([FromBody, Required] UserChangeEmailRequestDTO dto) { return(await _handler.ChangeEmailRequest(dto, User)); }