diff --git a/api4/cloud.go b/api4/cloud.go index e71659537f..e86a9b0aca 100644 --- a/api4/cloud.go +++ b/api4/cloud.go @@ -67,20 +67,21 @@ func getSubscription(c *Context, w http.ResponseWriter, r *http.Request) { // if it is an end user, return basic subscription data without sensitive information if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadBilling) { subscription = &model.Subscription{ - ID: subscription.ID, - ProductID: subscription.ProductID, - IsFreeTrial: subscription.IsFreeTrial, - TrialEndAt: subscription.TrialEndAt, - CustomerID: "", - AddOns: []string{}, - StartAt: 0, - EndAt: 0, - CreateAt: 0, - Seats: 0, - Status: "", - DNS: "", - IsPaidTier: "", - LastInvoice: &model.Invoice{}, + ID: subscription.ID, + ProductID: subscription.ProductID, + IsFreeTrial: subscription.IsFreeTrial, + TrialEndAt: subscription.TrialEndAt, + CustomerID: "", + AddOns: []string{}, + StartAt: 0, + EndAt: 0, + CreateAt: 0, + Seats: 0, + Status: "", + DNS: "", + IsPaidTier: "", + LastInvoice: &model.Invoice{}, + DelinquentSince: subscription.DelinquentSince, } } diff --git a/api4/cloud_test.go b/api4/cloud_test.go index 45c0eaa5ae..16da33ae88 100644 --- a/api4/cloud_test.go +++ b/api4/cloud_test.go @@ -111,36 +111,40 @@ func Test_getCloudLimits(t *testing.T) { } func Test_GetSubscription(t *testing.T) { + deliquencySince := int64(2000000000) + subscription := &model.Subscription{ - ID: "MySubscriptionID", - CustomerID: "MyCustomer", - ProductID: "SomeProductId", - AddOns: []string{}, - StartAt: 1000000000, - EndAt: 2000000000, - CreateAt: 1000000000, - Seats: 10, - IsFreeTrial: "true", - DNS: "some.dns.server", - IsPaidTier: "false", - TrialEndAt: 2000000000, - LastInvoice: &model.Invoice{}, + ID: "MySubscriptionID", + CustomerID: "MyCustomer", + ProductID: "SomeProductId", + AddOns: []string{}, + StartAt: 1000000000, + EndAt: 2000000000, + CreateAt: 1000000000, + Seats: 10, + IsFreeTrial: "true", + DNS: "some.dns.server", + IsPaidTier: "false", + TrialEndAt: 2000000000, + LastInvoice: &model.Invoice{}, + DelinquentSince: &deliquencySince, } userFacingSubscription := &model.Subscription{ - ID: "MySubscriptionID", - CustomerID: "", - ProductID: "SomeProductId", - AddOns: []string{}, - StartAt: 0, - EndAt: 0, - CreateAt: 0, - Seats: 0, - IsFreeTrial: "true", - DNS: "", - IsPaidTier: "", - TrialEndAt: 2000000000, - LastInvoice: &model.Invoice{}, + ID: "MySubscriptionID", + CustomerID: "", + ProductID: "SomeProductId", + AddOns: []string{}, + StartAt: 0, + EndAt: 0, + CreateAt: 0, + Seats: 0, + IsFreeTrial: "true", + DNS: "", + IsPaidTier: "", + TrialEndAt: 2000000000, + LastInvoice: &model.Invoice{}, + DelinquentSince: &deliquencySince, } t.Run("NON Admin users receive the user facing subscription", func(t *testing.T) { diff --git a/model/notify_admin.go b/model/notify_admin.go index 729050a804..edd11572ef 100644 --- a/model/notify_admin.go +++ b/model/notify_admin.go @@ -22,6 +22,7 @@ const ( PaidFeatureUnlimitedBoardcards = MattermostPaidFeature("mattermost.feature.unlimited_board_cards") PaidFeatureAllProfessionalfeatures = MattermostPaidFeature("mattermost.feature.all_professional") PaidFeatureAllEnterprisefeatures = MattermostPaidFeature("mattermost.feature.all_enterprise") + UpgradeDowngradeWorkspace = MattermostPaidFeature("mattermost.feature.upgrade_downgrade_workspace") ) var validSKUs map[string]struct{} = map[string]struct{}{ @@ -42,6 +43,7 @@ var paidFeatures map[MattermostPaidFeature]struct{} = map[MattermostPaidFeature] PaidFeatureUnlimitedBoardcards: {}, PaidFeatureAllProfessionalfeatures: {}, PaidFeatureAllEnterprisefeatures: {}, + UpgradeDowngradeWorkspace: {}, } type NotifyAdminToUpgradeRequest struct {