19 lines
671 B
TypeScript
19 lines
671 B
TypeScript
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."
|
|
);
|
|
}
|
|
}
|