mirror of
https://github.com/bitwarden/server.git
synced 2025-01-07 19:37:51 +01:00
[PM-10873] Updated errors thrown when creating organization on selfhost to be more specific (#5007)
* Updated errors thrown when creating organization on selfhost to be more specific * Added additional validation to ensure that the license type is accurate --------- Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
This commit is contained in:
parent
a8091bf585
commit
9321515eca
@ -519,17 +519,29 @@ public class OrganizationService : IOrganizationService
|
|||||||
OrganizationLicense license, User owner, string ownerKey, string collectionName, string publicKey,
|
OrganizationLicense license, User owner, string ownerKey, string collectionName, string publicKey,
|
||||||
string privateKey)
|
string privateKey)
|
||||||
{
|
{
|
||||||
|
if (license.LicenseType != LicenseType.Organization)
|
||||||
|
{
|
||||||
|
throw new BadRequestException("Premium licenses cannot be applied to an organization. " +
|
||||||
|
"Upload this license from your personal account settings page.");
|
||||||
|
}
|
||||||
|
|
||||||
var claimsPrincipal = _licensingService.GetClaimsPrincipalFromLicense(license);
|
var claimsPrincipal = _licensingService.GetClaimsPrincipalFromLicense(license);
|
||||||
var canUse = license.CanUse(_globalSettings, _licensingService, claimsPrincipal, out var exception);
|
var canUse = license.CanUse(_globalSettings, _licensingService, claimsPrincipal, out var exception);
|
||||||
|
|
||||||
if (!canUse)
|
if (!canUse)
|
||||||
{
|
{
|
||||||
throw new BadRequestException(exception);
|
throw new BadRequestException(exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (license.PlanType != PlanType.Custom &&
|
var plan = StaticStore.Plans.FirstOrDefault(p => p.Type == license.PlanType);
|
||||||
StaticStore.Plans.FirstOrDefault(p => p.Type == license.PlanType && !p.Disabled) == null)
|
if (plan is null)
|
||||||
{
|
{
|
||||||
throw new BadRequestException("Plan not found.");
|
throw new BadRequestException($"Server must be updated to support {license.Plan}.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (license.PlanType != PlanType.Custom && plan.Disabled)
|
||||||
|
{
|
||||||
|
throw new BadRequestException($"Plan {plan.Name} is disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
var enabledOrgs = await _organizationRepository.GetManyByEnabledAsync();
|
var enabledOrgs = await _organizationRepository.GetManyByEnabledAsync();
|
||||||
|
Loading…
Reference in New Issue
Block a user