Files
afrov2/lib/auth-utils.ts
2026-04-30 23:05:04 +02:00

43 lines
997 B
TypeScript

import { NextRequest } from 'next/server';
import prisma from '@/lib/prisma';
export const USER_SAFE_SELECT = {
id: true,
name: true,
email: true,
role: true,
avatar: true,
bio: true,
location: true,
phone: true,
createdAt: true,
updatedAt: true,
emailVerified: true,
};
export async function getAuthUser(request: NextRequest) {
const userId = request.headers.get('x-user-id');
if (!userId) return null;
try {
const user = await prisma.user.findUnique({
where: { id: userId },
select: {
id: true,
role: true,
emailVerified: true,
isSuspended: true
}
});
return user;
} catch (error) {
console.error('Error fetching auth user:', error);
return null;
}
}
export async function isAdmin(request: NextRequest) {
const user = await getAuthUser(request);
return user?.role === 'ADMIN';
}