public async Task Delete(int organizationId, string userId) { var user = await _userRetrievalService.GetUserByIdAsync(userId); var org = await _orgRetrievalService.GetOrganizationByIdAsync(organizationId); await _orgMemberService.RemoveFromOrganizationAsync(user, org); }
public async Task <IActionResult> OnPostAsync(string id) { if (!ModelState.IsValid) { return(await PageAsync(id)); } var user = await _userManager.FindByIdAsync(id); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } if (Input.Name != user.Name) { user.Name = Input.Name; var setNameResult = await _userManager.UpdateAsync(user); if (!setNameResult.Succeeded) { throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'."); } } if (Input.Email != user.Email) { // Set new email address var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email); // Change username to the new address user.UserName = Input.Email; var setNameResult = await _userManager.UpdateAsync(user); if (!setEmailResult.Succeeded) { throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'."); } } if (Input.PhoneNumber != user.PhoneNumber) { var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber); if (!setPhoneResult.Succeeded) { throw new ApplicationException($"Unexpected error occurred setting phone number for user with ID '{user.Id}'."); } } if (Input.SignatureImageBase64 != user.SignatureImageBase64) { user.SignatureImageBase64 = Input.SignatureImageBase64; var setSignatureResult = await _userManager.UpdateAsync(user); if (!setSignatureResult.Succeeded) { throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'."); } } try { if (User.IsInRole(Roles.SuperAdmin)) { if (Input.IsOrgMember) { var member = await _organizationMemberManagementService.AddToOrganizationAsync(user); await _memberRolesManagementService.UpdateOrganizationMemberRolesAsync(member.Id, MemberRoles.Where(r => r.Value) .Select(r => r.Key) .ToArray()); } else { await _organizationMemberManagementService.RemoveFromOrganizationAsync(user); } } } catch (AccessViolationException e) { _logger.LogError(e, e.Message); return(Forbid()); } return(RedirectToPage("Index")); }