flnxi-Wu/lib/admin-permissions.ts
2026-06-01 11:40:02 +08:00

34 lines
844 B
TypeScript

import { prisma } from '@/lib/prisma'
export async function isCurrentAdmin(session: unknown): Promise<boolean> {
const userId = (session as any)?.user?.id
if (!userId) {
return false
}
const user = await prisma.user.findUnique({
where: { id: userId },
select: { role: true, isSuperAdmin: true, isActive: true },
})
return Boolean(
user
&& (user.isSuperAdmin || user.isActive !== false)
&& (user.role === 'ADMIN' || user.isSuperAdmin)
)
}
export async function isCurrentSuperAdmin(session: unknown): Promise<boolean> {
const userId = (session as any)?.user?.id
if (!userId) {
return false
}
const user = await prisma.user.findUnique({
where: { id: userId },
select: { isSuperAdmin: true, isActive: true },
})
return Boolean(user?.isSuperAdmin && user.isActive !== false)
}