again n again

This commit is contained in:
Randa Firman Putra
2025-12-07 22:00:42 +07:00
parent 700a153b86
commit e3e98280c8
8 changed files with 1195 additions and 30 deletions

View File

@@ -16,7 +16,7 @@ export async function POST(request: NextRequest) {
}
// Validate role
if (!['ketuajurusan', 'admin'].includes(role)) {
if (!['ketuajurusan', 'ketuaprodi', 'pimpinan', 'admin'].includes(role)) {
return NextResponse.json(
{ message: 'Role tidak valid' },
{ status: 400 }
@@ -25,18 +25,22 @@ export async function POST(request: NextRequest) {
let query = supabase
.from('user_app')
.select('*')
.eq('role_user', role);
.select('*');
// Add specific field filter based on role
if (role === 'ketuajurusan') {
if (role === 'pimpinan' || role === 'ketuajurusan' || role === 'ketuaprodi') {
if (!nip) {
return NextResponse.json(
{ message: 'NIP diperlukan untuk Ketua Jurusan' },
{ message: 'NIP diperlukan untuk Pimpinan' },
{ status: 400 }
);
}
query = query.eq('nip', nip);
// 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);
}
} else if (role === 'admin') {
if (!username) {
return NextResponse.json(
@@ -44,8 +48,8 @@ export async function POST(request: NextRequest) {
{ status: 400 }
);
}
query = query.eq('username', username);
}
query = query.eq('role_user', role).eq('username', username);
}
const { data: users, error } = await query;