Notfallzugang gilt auch im Worker
Der Voll-Abgleich hat den Administrator alle fünf Minuten hinausgeworfen: enforceMembership kannte BOOTSTRAP_ADMIN_IDS nicht und sah nur, dass keine seiner Rollen zur Anmeldung berechtigt. Solange das Rollen-Mapping noch leer ist, trifft das zwangsläufig zu — der Notfallzugang war damit genau in der Lage wirkungslos, für die es ihn gibt. Gefunden beim ersten Lauf gegen den echten Discord-Server, nicht im Test.
This commit is contained in:
+10
-1
@@ -124,7 +124,16 @@ export async function syncMember(db: PrismaClient, member: GuildMember): Promise
|
||||
* Request des Betroffenen griffe — und genau darauf kann man sich nicht
|
||||
* verlassen, wenn jemandem gerade der Zugriff entzogen wurde.
|
||||
*/
|
||||
export async function enforceMembership(db: PrismaClient, userId: string): Promise<boolean> {
|
||||
export async function enforceMembership(
|
||||
db: PrismaClient,
|
||||
userId: string,
|
||||
bootstrapAdminIds: readonly string[] = [],
|
||||
): Promise<boolean> {
|
||||
// Der Notfallzugang gilt auch hier. Sonst wirft der Voll-Abgleich den
|
||||
// Administrator alle fünf Minuten hinaus, solange noch keine Rolle zur
|
||||
// Anmeldung berechtigt — und einrichten kann er es dann nie.
|
||||
if (bootstrapAdminIds.includes(userId)) return false
|
||||
|
||||
const roles = await db.userRole.findMany({
|
||||
where: { userId },
|
||||
select: { discordRoleId: true },
|
||||
|
||||
Reference in New Issue
Block a user