public async Task PutGroups(string orgId, string id, [FromBody] OrganizationUserUpdateGroupsRequestModel model) { var orgGuidId = new Guid(orgId); if (!_currentContext.OrganizationAdmin(orgGuidId)) { throw new NotFoundException(); } var organizationUser = await _organizationUserRepository.GetByIdAsync(new Guid(id)); if (organizationUser == null || organizationUser.OrganizationId != orgGuidId) { throw new NotFoundException(); } await _organizationUserRepository.UpdateGroupsAsync(organizationUser.Id, model.GroupIds.Select(g => new Guid(g))); }
public async Task PutGroups(string orgId, string id, [FromBody] OrganizationUserUpdateGroupsRequestModel model) { var orgGuidId = new Guid(orgId); if (!_currentContext.ManageUsers(orgGuidId)) { throw new NotFoundException(); } var organizationUser = await _organizationUserRepository.GetByIdAsync(new Guid(id)); if (organizationUser == null || organizationUser.OrganizationId != orgGuidId) { throw new NotFoundException(); } var loggedInUserId = _userService.GetProperUserId(User); await _organizationService.UpdateUserGroupsAsync(organizationUser, model.GroupIds.Select(g => new Guid(g)), loggedInUserId); }
public async Task PutGroups(string orgId, string id, [FromBody] OrganizationUserUpdateGroupsRequestModel model) { var orgGuidId = new Guid(orgId); if (!_currentContext.OrganizationAdmin(orgGuidId)) { throw new NotFoundException(); } var organizationUser = await _organizationUserRepository.GetByIdAsync(new Guid(id)); if (organizationUser == null || organizationUser.OrganizationId != orgGuidId) { throw new NotFoundException(); } if (organizationUser.Type == Core.Enums.OrganizationUserType.Owner && !_currentContext.OrganizationOwner(orgGuidId)) { throw new BadRequestException("Only owners can update other owners."); } await _organizationService.UpdateUserGroupsAsync(organizationUser, model.GroupIds.Select(g => new Guid(g))); }