mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 15:42:48 -05:00
[PM-11127] Write OrganizationInstallation
record when license is retrieved (#5090)
* Add SQL files * Add SQL Server migration * Add Core entity * Add Dapper repository * Add EF repository * Add EF migrations * Save OrganizationInstallation during GetLicense invocation * Run dotnet format
This commit is contained in:
@ -6,7 +6,9 @@ using Bit.Api.Models.Request.Organizations;
|
||||
using Bit.Api.Models.Response;
|
||||
using Bit.Core.AdminConsole.Entities;
|
||||
using Bit.Core.Billing.Constants;
|
||||
using Bit.Core.Billing.Entities;
|
||||
using Bit.Core.Billing.Models;
|
||||
using Bit.Core.Billing.Repositories;
|
||||
using Bit.Core.Billing.Services;
|
||||
using Bit.Core.Context;
|
||||
using Bit.Core.Enums;
|
||||
@ -42,7 +44,8 @@ public class OrganizationsController(
|
||||
IUpgradeOrganizationPlanCommand upgradeOrganizationPlanCommand,
|
||||
IAddSecretsManagerSubscriptionCommand addSecretsManagerSubscriptionCommand,
|
||||
IReferenceEventService referenceEventService,
|
||||
ISubscriberService subscriberService)
|
||||
ISubscriberService subscriberService,
|
||||
IOrganizationInstallationRepository organizationInstallationRepository)
|
||||
: Controller
|
||||
{
|
||||
[HttpGet("{id:guid}/subscription")]
|
||||
@ -97,6 +100,8 @@ public class OrganizationsController(
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
await SaveOrganizationInstallationAsync(id, installationId);
|
||||
|
||||
return license;
|
||||
}
|
||||
|
||||
@ -366,4 +371,24 @@ public class OrganizationsController(
|
||||
|
||||
return await organizationRepository.GetByIdAsync(id);
|
||||
}
|
||||
|
||||
private async Task SaveOrganizationInstallationAsync(Guid organizationId, Guid installationId)
|
||||
{
|
||||
var organizationInstallation =
|
||||
await organizationInstallationRepository.GetByInstallationIdAsync(installationId);
|
||||
|
||||
if (organizationInstallation == null)
|
||||
{
|
||||
await organizationInstallationRepository.CreateAsync(new OrganizationInstallation
|
||||
{
|
||||
OrganizationId = organizationId,
|
||||
InstallationId = installationId
|
||||
});
|
||||
}
|
||||
else if (organizationInstallation.OrganizationId == organizationId)
|
||||
{
|
||||
organizationInstallation.RevisionDate = DateTime.UtcNow;
|
||||
await organizationInstallationRepository.ReplaceAsync(organizationInstallation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user