34 lines
844 B
TypeScript
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)
|
|
}
|