From 2c3e271df10799bc78ce52ab52caca88f5eabfcd Mon Sep 17 00:00:00 2001 From: Max Leiter Date: Mon, 14 Nov 2022 18:49:58 -0800 Subject: [PATCH] only run prisma admin middleware if enable_admin --- client/lib/server/prisma.ts | 41 +++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/client/lib/server/prisma.ts b/client/lib/server/prisma.ts index f5227c90..a2282083 100644 --- a/client/lib/server/prisma.ts +++ b/client/lib/server/prisma.ts @@ -35,27 +35,28 @@ const updateDates = (input: any) => { } } - export const prisma = global.prisma || new PrismaClient({ log: ["query"] }) -// a prisma middleware for capturing the first user and making them an admin -prisma.$use(async (params, next) => { - const result = await next(params) - if (params.model === "User" && params.action === "create") { - const users = await prisma.user.findMany() - if (users.length === 1) { - await prisma.user.update({ - where: { id: users[0].id }, - data: { role: "admin" } - }) +if (config.enable_admin) { + // a prisma middleware for capturing the first user and making them an admin + prisma.$use(async (params, next) => { + const result = await next(params) + if (params.model === "User" && params.action === "create") { + const users = await prisma.user.findMany() + if (users.length === 1) { + await prisma.user.update({ + where: { id: users[0].id }, + data: { role: "admin" } + }) + } } - } - return result -}) + return result + }) +} // prisma.$use(async (params, next) => { // const result = await next(params) @@ -123,7 +124,7 @@ export const getUserById = async (userId: User["id"]) => { email: true, // displayName: true, role: true, - displayName: true, + displayName: true } }) @@ -160,10 +161,6 @@ export const createUser = async ( throw new Error("Wrong registration password") } - const isUserAdminByDefault = - config.enable_admin && (await prisma.user.count()) === 0 - const userRole = isUserAdminByDefault ? "admin" : "user" - return { // user, // token @@ -189,7 +186,7 @@ export const getPostById = async ( ? { select: { id: true, - displayName: true, + displayName: true } } : false @@ -230,8 +227,8 @@ export const getAllUsers = async () => { role: true, displayName: true, posts: true, - createdAt: true, - }, + createdAt: true + } }) return users as UserWithPosts[]