diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription-permissions.ts b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription-permissions.ts index 1be513cbc..9d901c8e7 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription-permissions.ts +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription-permissions.ts @@ -7,6 +7,8 @@ export interface SubscriptionPermissions { canCancelSubscription: boolean showTeamMemberView: boolean showUpgradePlans: boolean + isEnterpriseMember: boolean + canViewUsageInfo: boolean } export interface SubscriptionState { @@ -31,6 +33,9 @@ export function getSubscriptionPermissions( const { isFree, isPro, isTeam, isEnterprise, isPaid } = subscription const { isTeamAdmin } = userRole + const isEnterpriseMember = isEnterprise && !isTeamAdmin + const canViewUsageInfo = !isEnterpriseMember + return { canUpgradeToPro: isFree, canUpgradeToTeam: isFree || (isPro && !isTeam), @@ -40,6 +45,8 @@ export function getSubscriptionPermissions( canCancelSubscription: isPaid && !isEnterprise && !(isTeam && !isTeamAdmin), // Team members can't cancel showTeamMemberView: isTeam && !isTeamAdmin, showUpgradePlans: isFree || (isPro && !isTeam) || (isTeam && isTeamAdmin), // Free users, Pro users, Team owners see plans + isEnterpriseMember, + canViewUsageInfo, } } diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription.tsx index 5ccdde897..3132ce95e 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/subscription.tsx @@ -300,12 +300,16 @@ export function Subscription() { ) const showBadge = - (permissions.canEditUsageLimit && !permissions.showTeamMemberView) || - permissions.showTeamMemberView || - subscription.isEnterprise || - isBlocked + !permissions.isEnterpriseMember && + ((permissions.canEditUsageLimit && !permissions.showTeamMemberView) || + permissions.showTeamMemberView || + subscription.isEnterprise || + isBlocked) const getBadgeConfig = (): { text: string; variant: 'blue-secondary' | 'red' } => { + if (permissions.isEnterpriseMember) { + return { text: '', variant: 'blue-secondary' } + } if (permissions.showTeamMemberView || subscription.isEnterprise) { return { text: `${subscription.seats} seats`, variant: 'blue-secondary' } } @@ -443,67 +447,75 @@ export function Subscription() { return (
- {/* Current Plan & Usage Overview */} - { - logger.info('Usage limit updated') - }} - /> - ) : undefined - } - /> + {/* Current Plan & Usage Overview - hidden from enterprise members (non-admin) */} + {permissions.canViewUsageInfo ? ( + { + logger.info('Usage limit updated') + }} + /> + ) : undefined + } + /> + ) : ( +
+ + {formatPlanName(subscription.plan)} + +
+ )} {/* Upgrade Plans */} {permissions.showUpgradePlans && ( @@ -539,8 +551,8 @@ export function Subscription() {
)} - {/* Credit Balance */} - {subscription.isPaid && ( + {/* Credit Balance - hidden from enterprise members (non-admin) */} + {subscription.isPaid && permissions.canViewUsageInfo && ( refetchSubscription()} /> )} - {/* Next Billing Date - hidden from team members */} + {/* Next Billing Date - hidden from team members and enterprise members (non-admin) */} {subscription.isPaid && subscriptionData?.data?.periodEnd && - !permissions.showTeamMemberView && ( + !permissions.showTeamMemberView && + !permissions.isEnterpriseMember && (
@@ -566,8 +579,8 @@ export function Subscription() {
)} - {/* Usage notifications */} - {subscription.isPaid && } + {/* Usage notifications - hidden from enterprise members (non-admin) */} + {subscription.isPaid && permissions.canViewUsageInfo && } {/* Cancel Subscription */} {permissions.canCancelSubscription && ( diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx index 742865fb7..0fda657f2 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx @@ -285,6 +285,7 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) { const isPro = planType === 'pro' const isTeam = planType === 'team' const isEnterprise = planType === 'enterprise' + const isEnterpriseMember = isEnterprise && !userCanManageBilling const handleUpgradeToPro = useCallback(async () => { try { @@ -463,6 +464,18 @@ export function UsageIndicator({ onClick }: UsageIndicatorProps) { } } + if (isEnterpriseMember) { + return ( +
+
+ + {PLAN_NAMES[planType]} + +
+
+ ) + } + return ( <>