diff --git a/apps/web/prisma/migrations/20240429231118_add_is_beta_user/migration.sql b/apps/web/prisma/migrations/20240429231118_add_is_beta_user/migration.sql new file mode 100644 index 0000000..da32103 --- /dev/null +++ b/apps/web/prisma/migrations/20240429231118_add_is_beta_user/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "isBetaUser" BOOLEAN NOT NULL DEFAULT false; diff --git a/apps/web/prisma/schema.prisma b/apps/web/prisma/schema.prisma index 0d5e41c..73dce93 100644 --- a/apps/web/prisma/schema.prisma +++ b/apps/web/prisma/schema.prisma @@ -61,6 +61,7 @@ model User { email String? @unique emailVerified DateTime? image String? + isBetaUser Boolean @default(false) accounts Account[] sessions Session[] teamUsers TeamUser[] diff --git a/apps/web/src/app/(dashboard)/layout.tsx b/apps/web/src/app/(dashboard)/layout.tsx index c5b2b0a..4ddbd61 100644 --- a/apps/web/src/app/(dashboard)/layout.tsx +++ b/apps/web/src/app/(dashboard)/layout.tsx @@ -49,6 +49,10 @@ export default async function AuthenticatedDashboardLayout({ redirect("/"); } + if (!session.user.isBetaUser) { + redirect("/wait-list"); + } + return (
diff --git a/apps/web/src/app/wait-list/page.tsx b/apps/web/src/app/wait-list/page.tsx new file mode 100644 index 0000000..d913a48 --- /dev/null +++ b/apps/web/src/app/wait-list/page.tsx @@ -0,0 +1,15 @@ +import { Rocket } from "lucide-react"; + +export default async function Home() { + return ( +
+
+ +

You're on the Waitlist!

+

+ Hang tight, we'll get to you as soon as possible. +

+
+
+ ); +} diff --git a/apps/web/src/server/auth.ts b/apps/web/src/server/auth.ts index 122ade4..bc2bac0 100644 --- a/apps/web/src/server/auth.ts +++ b/apps/web/src/server/auth.ts @@ -23,6 +23,7 @@ declare module "next-auth" { interface Session extends DefaultSession { user: { id: number; + isBetaUser: boolean; // ...other properties // role: UserRole; } & DefaultSession["user"];