diff --git a/app/api/auth/login/route.ts b/app/api/auth/login/route.ts index ab384eb..49bbcea 100644 --- a/app/api/auth/login/route.ts +++ b/app/api/auth/login/route.ts @@ -16,7 +16,7 @@ export async function POST(request: NextRequest) { } // Validate role - if (!['ketuajurusan', 'ketuaprodi', 'pimpinan', 'admin'].includes(role)) { + if (!['pimpinan', 'admin'].includes(role)) { return NextResponse.json( { message: 'Role tidak valid' }, { status: 400 } @@ -28,19 +28,15 @@ export async function POST(request: NextRequest) { .select('*'); // Add specific field filter based on role - if (role === 'pimpinan' || role === 'ketuajurusan' || role === 'ketuaprodi') { + if (role === 'pimpinan') { if (!nip) { return NextResponse.json( { message: 'NIP diperlukan untuk Pimpinan' }, { status: 400 } ); } - // For pimpinan, accept both ketuajurusan and ketuaprodi - if (role === 'pimpinan') { - query = query.in('role_user', ['ketuajurusan', 'ketuaprodi']).eq('nip', nip); - } else { - query = query.eq('role_user', role).eq('nip', nip); - } + // For pimpinan login, search for users with role ketuajurusan OR ketuaprodi + query = query.in('role_user', ['ketuajurusan', 'ketuaprodi']).eq('nip', nip); } else if (role === 'admin') { if (!username) { return NextResponse.json( @@ -48,7 +44,7 @@ export async function POST(request: NextRequest) { { status: 400 } ); } - query = query.eq('role_user', role).eq('username', username); + query = query.eq('role_user', 'admin').eq('username', username); } const { data: users, error } = await query;