diff --git a/app/routes/mod-queue.tsx b/app/routes/mod-queue.tsx index 95d6d72..72996ec 100644 --- a/app/routes/mod-queue.tsx +++ b/app/routes/mod-queue.tsx @@ -82,6 +82,11 @@ export async function loader({ context }: { context: RequestContext }) { }); return { + can_edit_ban_users: [ + "165594923586945025", + "289372404541554689", + "396347223736057866", + ].includes(currentUser.id), departments: Object.entries(departments) .filter((d) => d[1] & currentUser.permissions) .map((arr) => arr[0]), diff --git a/functions/api/auth/session.ts b/functions/api/auth/session.ts index 66e7019..7adaa65 100644 --- a/functions/api/auth/session.ts +++ b/functions/api/auth/session.ts @@ -120,10 +120,10 @@ export async function onRequestGet(context: RequestContext) { const memberData: { [k: string]: any } = await serverMemberReq.json(); if (serverMemberReq.ok) { - userData.permissions = GetPermissions(userData.id, memberData.roles); + userData.permissions = await GetPermissions(userData.id, memberData.roles); userData.roles = memberData.roles; } else { - userData.permissions = GetPermissions(userData.id); + userData.permissions = await GetPermissions(userData.id); } const selectedTokenStart = diff --git a/functions/permissions.ts b/functions/permissions.ts index f7345b5..d1ce3a1 100644 --- a/functions/permissions.ts +++ b/functions/permissions.ts @@ -1,4 +1,4 @@ -export default function (userid: string, roles?: string[]): number { +export default async function (userid: string, roles?: string[], context?: RequestContext): Promise { let permissions = 0; if (roles?.includes("374851061233614849")) permissions |= 1 << 0; // Administration @@ -7,14 +7,9 @@ export default function (userid: string, roles?: string[]): number { if (roles?.includes("391986108763996160")) permissions |= 1 << 3; // Events Team if (roles?.includes("607697704419852289")) permissions |= 1 << 4; // Events Team Management if ( - [ - "165594923586945025", - "289372404541554689", - "320758924850757633", - "396347223736057866", - "704247919259156521", - "891710683371167795", - ].includes(userid) + ["165594923586945025", "289372404541554689", "396347223736057866"].includes( + userid + ) || (Boolean(await context?.env.DATA.get(`gamemod_${userid}`))) ) permissions |= 1 << 5; if (