Gate setup and admin navigation
This commit is contained in:
@@ -3,21 +3,10 @@ import { hash } from "bcryptjs";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { SYSTEM_PERMISSIONS } from "@/lib/access";
|
||||
import { setSession } from "@/lib/session";
|
||||
import { hasAdminUser } from "@/lib/setup";
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
|
||||
async function hasAdmin() {
|
||||
try {
|
||||
const admin = await prisma.userRole.findFirst({
|
||||
where: { role: { name: "admin" } },
|
||||
select: { userId: true }
|
||||
});
|
||||
return Boolean(admin);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function createFirstAdmin(formData: FormData) {
|
||||
"use server";
|
||||
|
||||
@@ -95,7 +84,7 @@ async function createFirstAdmin(formData: FormData) {
|
||||
}
|
||||
|
||||
export default async function SetupPage() {
|
||||
if (await hasAdmin()) {
|
||||
if (await hasAdminUser()) {
|
||||
redirect("/login");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user