1
0
mirror of https://github.com/bitwarden/server.git synced 2025-05-20 11:04:31 -05:00

[PM-14461] Return ProfileOrganizationResponse from subscription update (#5103)

* Return ProviderOrganizationResponse from subscription update

* QA: Fix SM trial seat adjustment
This commit is contained in:
Alex Morask 2025-01-02 14:37:12 -06:00 committed by GitHub
parent 97e11774e3
commit bf2bf3c13f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -150,7 +150,7 @@ public class OrganizationsController(
[HttpPost("{id}/sm-subscription")]
[SelfHosted(NotSelfHostedOnly = true)]
public async Task PostSmSubscription(Guid id, [FromBody] SecretsManagerSubscriptionUpdateRequestModel model)
public async Task<ProfileOrganizationResponseModel> PostSmSubscription(Guid id, [FromBody] SecretsManagerSubscriptionUpdateRequestModel model)
{
if (!await currentContext.EditSubscription(id))
{
@ -168,17 +168,26 @@ public class OrganizationsController(
var organizationUpdate = model.ToSecretsManagerSubscriptionUpdate(organization);
await updateSecretsManagerSubscriptionCommand.UpdateSubscriptionAsync(organizationUpdate);
var userId = userService.GetProperUserId(User)!.Value;
return await GetProfileOrganizationResponseModelAsync(id, userId);
}
[HttpPost("{id:guid}/subscription")]
[SelfHosted(NotSelfHostedOnly = true)]
public async Task PostSubscription(Guid id, [FromBody] OrganizationSubscriptionUpdateRequestModel model)
public async Task<ProfileOrganizationResponseModel> PostSubscription(Guid id, [FromBody] OrganizationSubscriptionUpdateRequestModel model)
{
if (!await currentContext.EditSubscription(id))
{
throw new NotFoundException();
}
await organizationService.UpdateSubscription(id, model.SeatAdjustment, model.MaxAutoscaleSeats);
var userId = userService.GetProperUserId(User)!.Value;
return await GetProfileOrganizationResponseModelAsync(id, userId);
}
[HttpPost("{id:guid}/subscribe-secrets-manager")]
@ -203,13 +212,7 @@ public class OrganizationsController(
await TryGrantOwnerAccessToSecretsManagerAsync(organization.Id, userId);
var organizationDetails = await organizationUserRepository.GetDetailsByUserAsync(userId, organization.Id,
OrganizationUserStatusType.Confirmed);
var organizationManagingActiveUser = await userService.GetOrganizationsManagingUserAsync(userId);
var organizationIdsManagingActiveUser = organizationManagingActiveUser.Select(o => o.Id);
return new ProfileOrganizationResponseModel(organizationDetails, organizationIdsManagingActiveUser);
return await GetProfileOrganizationResponseModelAsync(organization.Id, userId);
}
[HttpPost("{id:guid}/seat")]
@ -391,4 +394,19 @@ public class OrganizationsController(
await organizationInstallationRepository.ReplaceAsync(organizationInstallation);
}
}
private async Task<ProfileOrganizationResponseModel> GetProfileOrganizationResponseModelAsync(
Guid organizationId,
Guid userId)
{
var organizationUserDetails = await organizationUserRepository.GetDetailsByUserAsync(
userId,
organizationId,
OrganizationUserStatusType.Confirmed);
var organizationIdsManagingActiveUser = (await userService.GetOrganizationsManagingUserAsync(userId))
.Select(o => o.Id);
return new ProfileOrganizationResponseModel(organizationUserDetails, organizationIdsManagingActiveUser);
}
}