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()); }
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()); }
public async Task <HttpResponseMessage> SetTwoFactorAsync(int userId, ChangeTwoFactorContract contract) { var fullPath = $"{BasePath}{userId}/setTwoFactor"; return(await m_authorizationServiceHttpClient.SendRequestAsync(HttpMethod.Post, fullPath, contract)); }