Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public async Task <Response> ChangeEmailRequest([FromBody, Required] UserChangeEmailRequestDTO dto)
 {
     return(await _handler.ChangeEmailRequest(dto, User));
 }