mirror of
https://github.com/bitwarden/server
synced 2026-01-08 03:23:20 +00:00
Merge branch 'feature/flexible-collections' into flexible-collections/add-feature-flags
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
using Bit.Core.Entities;
|
||||
using Bit.Core.Enums;
|
||||
using Bit.Core.Enums.Provider;
|
||||
using Bit.Core.Exceptions;
|
||||
using Bit.Core.Models.Business;
|
||||
using Bit.Core.OrganizationFeatures.OrganizationSubscriptions.Interface;
|
||||
using Bit.Core.Repositories;
|
||||
using Bit.Core.Services;
|
||||
using Bit.Core.Utilities;
|
||||
|
||||
@@ -12,17 +14,21 @@ public class AddSecretsManagerSubscriptionCommand : IAddSecretsManagerSubscripti
|
||||
{
|
||||
private readonly IPaymentService _paymentService;
|
||||
private readonly IOrganizationService _organizationService;
|
||||
private readonly IProviderRepository _providerRepository;
|
||||
|
||||
public AddSecretsManagerSubscriptionCommand(
|
||||
IPaymentService paymentService,
|
||||
IOrganizationService organizationService)
|
||||
IOrganizationService organizationService,
|
||||
IProviderRepository providerRepository)
|
||||
{
|
||||
_paymentService = paymentService;
|
||||
_organizationService = organizationService;
|
||||
_providerRepository = providerRepository;
|
||||
}
|
||||
public async Task SignUpAsync(Organization organization, int additionalSmSeats,
|
||||
int additionalServiceAccounts)
|
||||
{
|
||||
ValidateOrganization(organization);
|
||||
await ValidateOrganization(organization);
|
||||
|
||||
var plan = StaticStore.GetSecretsManagerPlan(organization.PlanType);
|
||||
var signup = SetOrganizationUpgrade(organization, additionalSmSeats, additionalServiceAccounts);
|
||||
@@ -55,7 +61,7 @@ public class AddSecretsManagerSubscriptionCommand : IAddSecretsManagerSubscripti
|
||||
return signup;
|
||||
}
|
||||
|
||||
private static void ValidateOrganization(Organization organization)
|
||||
private async Task ValidateOrganization(Organization organization)
|
||||
{
|
||||
if (organization == null)
|
||||
{
|
||||
@@ -83,5 +89,12 @@ public class AddSecretsManagerSubscriptionCommand : IAddSecretsManagerSubscripti
|
||||
{
|
||||
throw new BadRequestException("No subscription found.");
|
||||
}
|
||||
|
||||
var provider = await _providerRepository.GetByOrganizationIdAsync(organization.Id);
|
||||
if (provider is { Type: ProviderType.Msp })
|
||||
{
|
||||
throw new BadRequestException(
|
||||
"Organizations with a Managed Service Provider do not support Secrets Manager.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,6 +410,11 @@ public class OrganizationService : IOrganizationService
|
||||
var secretsManagerPlan = StaticStore.SecretManagerPlans.FirstOrDefault(p => p.Type == signup.Plan);
|
||||
if (signup.UseSecretsManager)
|
||||
{
|
||||
if (provider)
|
||||
{
|
||||
throw new BadRequestException(
|
||||
"Organizations with a Managed Service Provider do not support Secrets Manager.");
|
||||
}
|
||||
ValidateSecretsManagerPlan(secretsManagerPlan, signup);
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,8 @@ public enum ReferenceEventType
|
||||
OrganizationEditedByAdmin,
|
||||
[EnumMember(Value = "organization-created-by-admin")]
|
||||
OrganizationCreatedByAdmin,
|
||||
[EnumMember(Value = "organization-edited-in-stripe")]
|
||||
OrganizationEditedInStripe,
|
||||
[EnumMember(Value = "sm-service-account-accessed-secret")]
|
||||
SmServiceAccountAccessedSecret,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user