mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 23:52:50 -05:00
[AC-358] Server changes for self host subscription page changes (#2826)
* [AC-358] Add constant for grace period length * [AC-358] Add SubscriptionExpiration to OrganizationLicense.cs and increment Current_License_File_Version * [AC-358] Update org subscription response model - Add new SelfHostSubscriptionExpiration field that does not include a grace period - Add optional License argument to constructor for self host responses - Use the License, if available, to populate the expiration/subscription expiration fields - Maintain backwards compatability by falling back to organization expiration date * [AC-358] Read organization license file for self hosted subscription response * [AC-358] Decrement current license file version and add comment documenting why * [AC-358] Clarify name for new expiration without grace period field
This commit is contained in:
@ -3,6 +3,7 @@ using Bit.Core.Enums;
|
||||
using Bit.Core.Models.Api;
|
||||
using Bit.Core.Models.Business;
|
||||
using Bit.Core.Utilities;
|
||||
using Constants = Bit.Core.Constants;
|
||||
|
||||
namespace Bit.Api.Models.Response.Organizations;
|
||||
|
||||
@ -108,9 +109,32 @@ public class OrganizationSubscriptionResponseModel : OrganizationResponseModel
|
||||
}
|
||||
}
|
||||
|
||||
public OrganizationSubscriptionResponseModel(Organization organization, OrganizationLicense license) :
|
||||
this(organization)
|
||||
{
|
||||
if (license != null)
|
||||
{
|
||||
// License expiration should always include grace period - See OrganizationLicense.cs
|
||||
Expiration = license.Expires;
|
||||
// Use license.ExpirationWithoutGracePeriod if available, otherwise assume license expiration minus grace period
|
||||
ExpirationWithoutGracePeriod = license.ExpirationWithoutGracePeriod ??
|
||||
license.Expires?.AddDays(-Constants
|
||||
.OrganizationSelfHostSubscriptionGracePeriodDays);
|
||||
}
|
||||
}
|
||||
|
||||
public string StorageName { get; set; }
|
||||
public double? StorageGb { get; set; }
|
||||
public BillingSubscription Subscription { get; set; }
|
||||
public BillingSubscriptionUpcomingInvoice UpcomingInvoice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Date when a self-hosted organization's subscription expires, without any grace period.
|
||||
/// </summary>
|
||||
public DateTime? ExpirationWithoutGracePeriod { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Date when a self-hosted organization expires (includes grace period).
|
||||
/// </summary>
|
||||
public DateTime? Expiration { get; set; }
|
||||
}
|
||||
|
Reference in New Issue
Block a user