From 7132ae597313676b50e155626f73352546fab515 Mon Sep 17 00:00:00 2001 From: Conner Turnbull Date: Tue, 20 May 2025 15:16:04 -0400 Subject: [PATCH] Reordered properties so that they appear in order according to their version number first, then data type, then name --- src/Core/Models/Business/BaseLicense.cs | 29 +++--- .../Models/Business/OrganizationLicense.cs | 92 +++++++++---------- 2 files changed, 62 insertions(+), 59 deletions(-) diff --git a/src/Core/Models/Business/BaseLicense.cs b/src/Core/Models/Business/BaseLicense.cs index a0b0b27c01..25bb05a6b4 100644 --- a/src/Core/Models/Business/BaseLicense.cs +++ b/src/Core/Models/Business/BaseLicense.cs @@ -8,33 +8,33 @@ namespace Bit.Core.Models.Business; public abstract class BaseLicense : ILicense { - [LicenseVersion(1)] - public string LicenseKey { get; set; } - [LicenseVersion(1)] public Guid Id { get; set; } [LicenseVersion(1)] - public string Name { get; set; } - - [LicenseVersion(1)] - public int Version { get; set; } - [LicenseIgnore(includeInHash: false)] public DateTime Issued { get; set; } - [LicenseIgnore(includeInHash: false)] - public DateTime? Refresh { get; set; } - [LicenseVersion(1)] public DateTime? Expires { get; set; } + [LicenseVersion(1)] + [LicenseIgnore(includeInHash: false)] + public DateTime? Refresh { get; set; } + + [LicenseVersion(1)] + public int Version { get; set; } + [LicenseVersion(1)] public bool Trial { get; set; } - [LicenseIgnore] - public LicenseType? LicenseType { get; set; } + [LicenseVersion(1)] + public string LicenseKey { get; set; } + [LicenseVersion(1)] + public string Name { get; set; } + + [LicenseVersion(1)] [LicenseIgnore(includeInHash: false)] public string Hash { get; set; } @@ -42,6 +42,9 @@ public abstract class BaseLicense : ILicense [LicenseIgnore] public string Signature { get; set; } + [LicenseIgnore] + public LicenseType? LicenseType { get; set; } + [LicenseIgnore] public string Token { get; set; } diff --git a/src/Core/Models/Business/OrganizationLicense.cs b/src/Core/Models/Business/OrganizationLicense.cs index 8e9addbac9..9fc2ac5969 100644 --- a/src/Core/Models/Business/OrganizationLicense.cs +++ b/src/Core/Models/Business/OrganizationLicense.cs @@ -137,71 +137,79 @@ public class OrganizationLicense : BaseLicense Signature = Convert.ToBase64String(licenseService.SignLicense(this)); } + /// + /// Represents the current version of the license format. Should be updated whenever new fields are added. + /// + /// Intentionally set one version behind to allow self hosted users some time to update before + /// getting out of date license errors + /// + public const int CurrentLicenseFileVersion = 15; + [LicenseVersion(1)] public Guid InstallationId { get; set; } + [LicenseVersion(1)] + public int? Seats { get; set; } + + [LicenseVersion(1)] + public short? MaxCollections { get; set; } + + [LicenseVersion(1)] + public short? MaxStorageGb { get; set; } + + [LicenseVersion(1)] + public bool Enabled { get; set; } + + [LicenseVersion(1)] + public bool SelfHost { get; set; } + + [LicenseVersion(1)] + public bool UseDirectory { get; set; } + + [LicenseVersion(1)] + public bool UseGroups { get; set; } + + [LicenseVersion(1)] + public bool UseTotp { get; set; } + [LicenseVersion(1)] public string BillingEmail { get; set; } [LicenseVersion(1)] public string BusinessName { get; set; } - [LicenseVersion(1)] - public bool Enabled { get; set; } - [LicenseVersion(1)] public string Plan { get; set; } [LicenseVersion(1)] public PlanType PlanType { get; set; } - [LicenseVersion(1)] - public int? Seats { get; set; } - - [LicenseVersion(1)] - public short? MaxCollections { get; set; } - - [LicenseVersion(6)] - public bool UsePolicies { get; set; } - - [LicenseVersion(7)] - public bool UseSso { get; set; } - - [LicenseVersion(9)] - public bool UseKeyConnector { get; set; } - - [LicenseVersion(10)] - public bool UseScim { get; set; } - - [LicenseVersion(1)] - public bool UseGroups { get; set; } + [LicenseVersion(2)] + public bool UsersGetPremium { get; set; } [LicenseVersion(3)] public bool UseEvents { get; set; } - [LicenseVersion(1)] - public bool UseDirectory { get; set; } - - [LicenseVersion(1)] - public bool UseTotp { get; set; } - [LicenseVersion(4)] public bool Use2fa { get; set; } [LicenseVersion(5)] public bool UseApi { get; set; } + [LicenseVersion(6)] + public bool UsePolicies { get; set; } + + [LicenseVersion(7)] + public bool UseSso { get; set; } + [LicenseVersion(8)] public bool UseResetPassword { get; set; } - [LicenseVersion(1)] - public short? MaxStorageGb { get; set; } + [LicenseVersion(9)] + public bool UseKeyConnector { get; set; } - [LicenseVersion(1)] - public bool SelfHost { get; set; } - - [LicenseVersion(2)] - public bool UsersGetPremium { get; set; } + [LicenseVersion(10)] + public bool UseScim { get; set; } [LicenseVersion(11)] public bool UseCustomPermissions { get; set; } @@ -221,9 +229,6 @@ public class OrganizationLicense : BaseLicense [LicenseVersion(13)] public int? SmServiceAccounts { get; set; } - [LicenseIgnore] - public bool UseRiskInsights { get; set; } - // Deprecated. Left for backwards compatibility with old license versions. [LicenseVersion(14)] public bool LimitCollectionCreationDeletion { get; set; } = true; @@ -238,13 +243,8 @@ public class OrganizationLicense : BaseLicense [LicenseIgnore] public bool UseAdminSponsoredFamilies { get; set; } - /// - /// Represents the current version of the license format. Should be updated whenever new fields are added. - /// - /// Intentionally set one version behind to allow self hosted users some time to update before - /// getting out of date license errors - /// - public const int CurrentLicenseFileVersion = 15; + [LicenseIgnore] + public bool UseRiskInsights { get; set; } private bool ValidLicenseVersion {