admin roadmap filter & search, user management, reopen rejected, system health
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import { userRepo } from "@/server/repositories/user.repo";
|
||||
|
||||
/**
|
||||
* Pastikan user session aktif (tidak suspended) sebelum lanjut aksi mutatif.
|
||||
* Dipanggil di awal server action yang menulis ke DB (joinTrip, createTrip,
|
||||
* createReview, dll). Lookup fresh dari DB — jangan trust JWT karena suspend
|
||||
* bisa di-trigger sejak token dibuat.
|
||||
*
|
||||
* Throw Error dengan pesan user-friendly kalau suspended.
|
||||
*/
|
||||
export async function requireActiveUser(userId: string): Promise<void> {
|
||||
const suspended = await userRepo.isSuspended(userId);
|
||||
if (suspended) {
|
||||
throw new Error(
|
||||
"Akun kamu sedang ditangguhkan. Hubungi support@setrip.id untuk klarifikasi."
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user