Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Create server handler for mod queue page
  • Loading branch information
regalijan committed Oct 19, 2023
1 parent 7f1deea commit d9a9a9f
Showing 1 changed file with 30 additions and 4 deletions.
34 changes: 30 additions & 4 deletions pages/mod-queue.page.server.tsx
Expand Up @@ -4,11 +4,25 @@ export async function onBeforeRender(pageContext: PageContext) {
if (!currentUser)
return {
pageContext: {
logged_in: false,
pageProps: {
logged_in: false,
},
status: 401,
},
status: 401,
};

const newItemPermissions = {
game_ban: [1 << 5],
inactivity: [1 << 2, 1 << 9, 1 << 10],
infraction: [1 << 0, 1 << 2, 1 << 6, 1 << 7]
};

const newItemNames: { [k: string]: string } = {
game_ban: "Game Ban",
inactivity: "Inactivity Notice",
infraction: "Infraction",
};

const typePermissions = {
appeal: [1 << 0, 1 << 1],
gma: [1 << 5],
Expand All @@ -21,8 +35,14 @@ export async function onBeforeRender(pageContext: PageContext) {
report: "Game Reports",
};

const allowedNewItems = [];
const allowedTypes = [];

for (const [item, ints] of Object.entries(newItemPermissions)) {
if (ints.find((i) => currentUser.permissions & i))
allowedNewItems.push({ name: newItemNames[item], value: item })
}

for (const [type, ints] of Object.entries(typePermissions)) {
if (ints.find((i) => currentUser.permissions & i))
allowedTypes.push({ name: typeNames[type], value: type });
Expand All @@ -31,15 +51,21 @@ export async function onBeforeRender(pageContext: PageContext) {
if (!allowedTypes.length)
return {
pageContext: {
entry_types: [],
pageProps: {
entry_types: [],
item_types: [],
logged_in: true,
},
status: 403,
},
status: 403,
};

return {
pageContext: {
pageProps: {
entry_types: allowedTypes,
item_types: allowedNewItems,
logged_in: true,
},
},
};
Expand Down

0 comments on commit d9a9a9f

Please sign in to comment.