Example #1
0
        public async Task <IActionResult> SetTwoFactor([Required][FromRoute] int userId,
                                                       [Required][FromBody] ChangeTwoFactorContract contract)
        {
            var authorized = await m_userHelper.IsUserAuthorizedAsync(userId, true, true, PermissionNames.SetTwoFactor, PermissionNames.EditAnyUsersData);

            if (!authorized)
            {
                return(Forbid());
            }

            var user = await m_identityUserManager.FindByIdAsync(userId.ToString());

            var result = await m_identityUserManager.SetTwoFactorEnabledAsync(user, contract.TwoFactorIsEnabled);

            return(!result.Succeeded ? Error(result.Errors.FirstOrDefault()?.Description, result.Errors.FirstOrDefault()?.Code) : Ok());
        }
Example #2
0
        public async Task <IActionResult> ChangeTwoFactorProvider([Required][FromRoute] int userId,
                                                                  [Required][FromBody] ChangeTwoFactorContract contract)
        {
            var authorized = await m_userHelper.IsUserAuthorizedAsync(userId, true, true, PermissionNames.SelectTwoFactorProvider, PermissionNames.EditAnyUsersData);

            if (!authorized)
            {
                return(Forbid());
            }

            var user = await m_identityUserManager.FindByIdAsync(userId.ToString());

            var twoFactorCheckResult = await m_twoFactorValidator.CheckTwoFactorIsValidOrNotEnabledAsync(contract.TwoFactorProvider, user);

            if (!twoFactorCheckResult.IsSuccessful)
            {
                return(Error(twoFactorCheckResult.Message, twoFactorCheckResult.Code));
            }

            var result = await m_identityUserManager.SetTwoFactorProviderAsync(user, contract.TwoFactorProvider);

            return(!result.Succeeded ? Error(result.Errors.FirstOrDefault()?.Description, result.Errors.FirstOrDefault()?.Code) : Ok());
        }
Example #3
0
        public async Task <HttpResponseMessage> SetTwoFactorAsync(int userId, ChangeTwoFactorContract contract)
        {
            var fullPath = $"{BasePath}{userId}/setTwoFactor";

            return(await m_authorizationServiceHttpClient.SendRequestAsync(HttpMethod.Post, fullPath, contract));
        }