added admin system

This commit is contained in:
averel10
2026-03-08 10:27:23 +01:00
parent 4d8040a674
commit 445a429be7
9 changed files with 297 additions and 16 deletions

View File

@@ -1,20 +1,24 @@
import { betterAuth } from "better-auth";
import { betterAuth, Session } from "better-auth";
import { localization } from "better-auth-localization";
import { drizzleAdapter } from "@better-auth/drizzle-adapter";
import { headers } from "next/headers";
import db from "./db";
import { user, session, account, verification } from "./model";
import * as schema from "./model/auth-schema";
export const auth = betterAuth({
database: drizzleAdapter(db, {
provider: "sqlite",
schema: {
user,
session,
account,
verification,
},
schema: schema
}),
user:{
additionalFields: {
admin: {
type: "boolean",
default: false,
}
}
},
emailAndPassword: {
enabled: true,
},
@@ -25,4 +29,16 @@ export const auth = betterAuth({
fallbackLocale: "default" // Fallback to English
})
]
});
});
export async function requireAdmin() {
const session = await auth.api.getSession({
headers: await headers()
});
if (!session) {
return { authenticated: false, admin: false };
}
return { authenticated: true, admin: session.user.admin, session };
}