23 lines
633 B
TypeScript
23 lines
633 B
TypeScript
// TODO: Check of dit bestand weg kan — uitsluitend gebruikt door eigen test
|
|
import { isStaff } from "@/lib/admin/is-staff";
|
|
|
|
export interface StaffUserRecord {
|
|
id: number;
|
|
rank: number;
|
|
username: string;
|
|
}
|
|
|
|
export type FindStaffUser = (id: number) => Promise<StaffUserRecord | null>;
|
|
|
|
export async function resolveStaffUser(
|
|
sessionUserId: string,
|
|
minStaffRank: number,
|
|
findUser: FindStaffUser,
|
|
): Promise<StaffUserRecord | null> {
|
|
const id = Number(sessionUserId);
|
|
if (!Number.isSafeInteger(id) || id <= 0) return null;
|
|
|
|
const user = await findUser(id);
|
|
return user && isStaff(user.rank, minStaffRank) ? user : null;
|
|
}
|