mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-10-03 00:27:30 -05:00
Move app to apps/web-react in pnpm workspace layout
This commit is contained in:
81
apps/web-react/app/modules/permissions/mapper.server.ts
Normal file
81
apps/web-react/app/modules/permissions/mapper.server.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
import type { UserWithPlusTier } from "~/utils/kysely.server";
|
||||
import { userDiscordIdIsAged } from "~/utils/users";
|
||||
import type { Role } from "./types";
|
||||
import {
|
||||
isAdmin,
|
||||
isDev,
|
||||
isQa,
|
||||
isScannerTester,
|
||||
isStaff,
|
||||
isSupporter,
|
||||
} from "./utils";
|
||||
|
||||
export function userRoles(
|
||||
user: Pick<
|
||||
UserWithPlusTier,
|
||||
| "id"
|
||||
| "discordId"
|
||||
| "plusTier"
|
||||
| "isArtist"
|
||||
| "isTournamentOrganizer"
|
||||
| "isVideoAdder"
|
||||
| "isApiAccesser"
|
||||
| "patronTier"
|
||||
>,
|
||||
) {
|
||||
const result: Array<Role> = [];
|
||||
|
||||
if (isAdmin(user)) {
|
||||
result.push("ADMIN");
|
||||
}
|
||||
|
||||
if (isStaff(user) || isAdmin(user)) {
|
||||
result.push("STAFF");
|
||||
}
|
||||
|
||||
if (isDev(user)) {
|
||||
result.push("DEV");
|
||||
}
|
||||
|
||||
if (isQa(user)) {
|
||||
result.push("QA");
|
||||
}
|
||||
|
||||
if (isScannerTester(user)) {
|
||||
result.push("SCANNER_TESTER");
|
||||
}
|
||||
|
||||
if (typeof user.patronTier === "number") {
|
||||
result.push("MINOR_SUPPORT");
|
||||
}
|
||||
|
||||
if (isSupporter(user)) {
|
||||
result.push("SUPPORTER");
|
||||
}
|
||||
|
||||
if (typeof user.plusTier === "number") {
|
||||
result.push("PLUS_SERVER_MEMBER");
|
||||
}
|
||||
|
||||
if (user.isArtist) {
|
||||
result.push("ARTIST");
|
||||
}
|
||||
|
||||
if (user.isVideoAdder) {
|
||||
result.push("VIDEO_ADDER");
|
||||
}
|
||||
|
||||
if (user.isTournamentOrganizer || isSupporter(user)) {
|
||||
result.push("TOURNAMENT_ADDER");
|
||||
}
|
||||
|
||||
if (userDiscordIdIsAged(user) || isSupporter(user)) {
|
||||
result.push("CALENDAR_EVENT_ADDER");
|
||||
}
|
||||
|
||||
if (user.isTournamentOrganizer || user.isApiAccesser || isSupporter(user)) {
|
||||
result.push("API_ACCESSER");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user