enforce membership feature access in api and surface plans in admin
This commit is contained in:
1 parent
1f4800c055
commit
ebfd633a11
14 files changed
+573
-5
No files matched your search
@@ -0,0 +1,26 @@
|
||||
import { getDatabase } from "@/lib/database";
|
||||
import { getMembershipFeatures } from "./features";
|
||||
|
||||
export async function getUserMembershipContext(userId: string): Promise<{
|
||||
membershipType: "basic" | "premium" | "vip";
|
||||
features: ReturnType<typeof getMembershipFeatures>;
|
||||
}> {
|
||||
const db = await getDatabase();
|
||||
const user = await db.getUserById(userId);
|
||||
|
||||
if (!user || user.role !== "client") {
|
||||
const membershipType = "vip" as const;
|
||||
return {
|
||||
membershipType,
|
||||
features: getMembershipFeatures(membershipType),
|
||||
};
|
||||
}
|
||||
|
||||
const client = await db.getClientByUserId(userId);
|
||||
const membershipType = client?.membershipType ?? "basic";
|
||||
|
||||
return {
|
||||
membershipType,
|
||||
features: getMembershipFeatures(membershipType),
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user