Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public async Task<ValidationResult<PasswordManagerSubscriptionUpdate>> ValidateA

if (provider is not null)
{
var providerValidationResult = InvitingUserOrganizationProviderValidator.Validate(new InviteOrganizationProvider(provider));
var providerValidationResult = InvitingUserOrganizationProviderValidator.Validate(new InviteOrganizationProvider(provider), request.Seats);

if (providerValidationResult is Invalid<InviteOrganizationProvider> invalidProviderValidation)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ public record ProviderBillableSeatLimitError(InviteOrganizationProvider InvalidR
public const string Code = "Seat limit has been reached. Please contact your provider to add more seats.";
}

public record ProviderResellerSeatLimitError(InviteOrganizationProvider InvalidRequest) : Error<InviteOrganizationProvider>(Code, InvalidRequest)
public record ProviderResellerSeatLimitError : Error<InviteOrganizationProvider>
{
public const string Code = "Seat limit has been reached. Contact your provider to purchase additional seats.";
public ProviderResellerSeatLimitError(InviteOrganizationProvider invalidRequest, int? seats)
: base($"Seat limit of {seats} has been reached. Contact your provider to purchase additional seats.", invalidRequest)
{
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUse

public static class InvitingUserOrganizationProviderValidator
{
public static ValidationResult<InviteOrganizationProvider> Validate(InviteOrganizationProvider inviteOrganizationProvider)
public static ValidationResult<InviteOrganizationProvider> Validate(InviteOrganizationProvider inviteOrganizationProvider, int? seats)
{
if (inviteOrganizationProvider is not { Enabled: true })
{
Expand All @@ -20,7 +20,7 @@ public static ValidationResult<InviteOrganizationProvider> Validate(InviteOrgani

if (inviteOrganizationProvider.Type == ProviderType.Reseller)
{
return new Invalid<InviteOrganizationProvider>(new ProviderResellerSeatLimitError(inviteOrganizationProvider));
return new Invalid<InviteOrganizationProvider>(new ProviderResellerSeatLimitError(inviteOrganizationProvider, seats));
}

return new Valid<InviteOrganizationProvider>(inviteOrganizationProvider);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -733,7 +733,7 @@ await _sendOrganizationInvitesCommand.SendInvitesAsync(new SendInvitesRequest(

if (provider.Type == ProviderType.Reseller)
{
return (false, "Seat limit has been reached. Contact your provider to purchase additional seats.");
return (false, $"Seat limit of {organization.Seats} has been reached. Contact your provider to purchase additional seats.");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ public async Task CanScaleAsync_FailsOnResellerManagedOrganization(
var (result, failureMessage) = await sutProvider.Sut.CanScaleAsync(organization, 10);

Assert.False(result);
Assert.Contains("Seat limit has been reached. Contact your provider to purchase additional seats.", failureMessage);
Assert.Contains($"Seat limit of {organization.Seats} has been reached. Contact your provider to purchase additional seats.", failureMessage);
}


Expand Down
Loading