MCPcopy
hub / github.com/simstudioai/sim / getSubscriptionAccessState

Function getSubscriptionAccessState

apps/sim/lib/billing/client/utils.ts:44–68  ·  view source on GitHub ↗
(
  subscriptionData: Partial<SubscriptionData> | null | undefined
)

Source from the content-addressed store, hash-verified

42}
43
44export function getSubscriptionAccessState(
45 subscriptionData: Partial<SubscriptionData> | null | undefined
46) {
47 const status = getSubscriptionStatus(subscriptionData)
48 const billingBlocked = Boolean(subscriptionData?.billingBlocked)
49 const hasUsablePaidAccess = hasUsableSubscriptionAccess(status.status, billingBlocked)
50 // Team-management features (invitations, seats, roles) are available on
51 // any paid subscription attached to an organization — including `pro_*`
52 // plans that have been transferred to an org. Plan-name gating would
53 // miss those.
54 const hasUsableTeamAccess =
55 hasUsablePaidAccess && (status.isOrgScoped || status.isTeam || status.isEnterprise)
56 const hasUsableEnterpriseAccess = hasUsablePaidAccess && status.isEnterprise
57 const hasUsableMaxAccess =
58 hasUsablePaidAccess && (getPlanTierCredits(status.plan) >= 25000 || isEnterprise(status.plan))
59
60 return {
61 ...status,
62 billingBlocked,
63 hasUsablePaidAccess,
64 hasUsableTeamAccess,
65 hasUsableEnterpriseAccess,
66 hasUsableMaxAccess,
67 }
68}
69
70/**
71 * Get usage data from subscription data

Callers 9

AddConnectorModalFunction · 0.90
EditConnectorModalFunction · 0.90
TeamManagementFunction · 0.90
CredentialSetsFunction · 0.90
SettingsSidebarFunction · 0.90
useForkingAvailableFunction · 0.90
CredentialSelectorFunction · 0.90
SSOFunction · 0.90
WhitelabelingSettingsFunction · 0.90

Calls 4

getPlanTierCreditsFunction · 0.90
isEnterpriseFunction · 0.90
getSubscriptionStatusFunction · 0.85

Tested by

no test coverage detected