all repos — stealth-developers @ 5b4e11e209be50e047f45841492df7729088bfa6

apps/bot/src/feats/tickets/lib/index.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
import {
	type Actor,
	type Guild,
	type TicketWithRelations,
	type User,
} from "@stealth-developers/db";

export function hasAccessToTicket(
	user: Actor | User,
	guild: Guild,
	ticket: TicketWithRelations,
	{ requireModerator = false }: { requireModerator?: boolean } = {},
) {
	const isModerator = "moderator" in user && user.guildId === guild.id && user.moderator;

	if (requireModerator) return isModerator;

	if (user.discordId === ticket.subjectActor?.discordId) return true;
	if (isModerator) return true;

	return false;
}