From 4c0ce46ac3365ba930a013d409fbeb1fcc4428de Mon Sep 17 00:00:00 2001 From: Minidoracat Date: Thu, 29 Jan 2026 10:26:40 +0000 Subject: [PATCH] Discord: implement role allowlist with OR logic in preflight --- src/discord/monitor/allow-list.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/discord/monitor/allow-list.ts b/src/discord/monitor/allow-list.ts index dde753afa..e95937601 100644 --- a/src/discord/monitor/allow-list.ts +++ b/src/discord/monitor/allow-list.ts @@ -181,6 +181,20 @@ export function resolveDiscordOwnerAllowFrom(params: { return [match.matchKey]; } +export function resolveDiscordRoleAllowed(params: { + allowList?: Array; + memberRoleIds: string[]; +}) { + const allowList = normalizeDiscordAllowList(params.allowList, ["role:"]); + if (!allowList) { + return true; + } + if (allowList.allowAll) { + return true; + } + return params.memberRoleIds.some((roleId) => allowList.ids.has(roleId)); +} + export function resolveDiscordCommandAuthorized(params: { isDirectMessage: boolean; allowFrom?: Array;