mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 17:46:06 +00:00
feat(billing): integrate Stripe for subscription management and billing access
- Added billing-related fields to the User model in the database. - Implemented functions for managing billing access, including trial periods and subscription statuses. - Created new billing utility functions for Stripe integration. - Updated onboarding page to include billing overview and workspace creation eligibility. - Enhanced route access checks to require billing access for certain actions. - Implemented cleanup scripts for expired billing workspaces and associated media. - Updated header component to conditionally show app navigation based on billing access. - Added new migrations for billing-related database changes.
This commit is contained in:
@@ -1,7 +1,21 @@
|
||||
import { requireAuthOrRedirect } from '@/lib/route-access';
|
||||
import { hasCollaboratorBillingBackedAccess, requireAuthOrRedirect } from '@/lib/route-access';
|
||||
import { getBillingOverview } from '@/lib/billing';
|
||||
import SettingsPageClient from './settings-page-client';
|
||||
|
||||
export default async function SettingsPage() {
|
||||
await requireAuthOrRedirect();
|
||||
return <SettingsPageClient />;
|
||||
const session = await requireAuthOrRedirect();
|
||||
if (!session?.user?.id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const [billing, hasCollaboratorAccess] = await Promise.all([
|
||||
getBillingOverview(session.user.id),
|
||||
hasCollaboratorBillingBackedAccess(session.user.id),
|
||||
]);
|
||||
|
||||
return (
|
||||
<SettingsPageClient
|
||||
billingOnly={!billing.subscription.hasBillingAccess && !hasCollaboratorAccess}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user