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:
@@ -82,6 +82,20 @@ suite('Sitzungen beim Rollenentzug', () => {
|
||||
expect(nutzer?.isActive).toBe(false)
|
||||
})
|
||||
|
||||
it('wirft den Notfallzugang nicht hinaus, auch ohne AfiS-Rolle', async () => {
|
||||
// Sonst wirft der Voll-Abgleich den Administrator alle fünf Minuten
|
||||
// hinaus, solange noch keine Rolle zur Anmeldung berechtigt — und
|
||||
// einrichten kann er das Rollen-Mapping dann nie.
|
||||
const id = `${marke}-notfall`
|
||||
await nutzerMitSitzung(id, [rolleGast])
|
||||
|
||||
const beendet = await enforceMembership(db, id, [id])
|
||||
|
||||
expect(beendet).toBe(false)
|
||||
expect(await db.session.count({ where: { userId: id } })).toBe(1)
|
||||
expect((await db.user.findUnique({ where: { id } }))?.isActive).toBe(true)
|
||||
})
|
||||
|
||||
it('beendet Sitzungen beim Serveraustritt und behält den Nutzer', async () => {
|
||||
const id = `${marke}-austritt`
|
||||
await nutzerMitSitzung(id, [rolleAfis])
|
||||
|
||||
Reference in New Issue
Block a user