fix(slack): apply open policy consistently to slash commands

Address reviewer feedback: slash commands now use the same
hasExplicitConfig check as regular messages, so unlisted
channels are allowed under groupPolicy: "open" for both
message handling and slash commands.
This commit is contained in:
Jay Winder
2026-01-24 15:03:35 +09:00
committed by Peter Steinberger
parent 72d62a54c6
commit 4d2e9e8113

View File

@@ -262,8 +262,7 @@ export function registerSlackMonitorSlashCommands(params: {
groupPolicy: ctx.groupPolicy, groupPolicy: ctx.groupPolicy,
channelAllowlistConfigured, channelAllowlistConfigured,
channelAllowed, channelAllowed,
}) || })
!channelAllowed
) { ) {
await respond({ await respond({
text: "This channel is not allowed.", text: "This channel is not allowed.",
@@ -271,8 +270,11 @@ export function registerSlackMonitorSlashCommands(params: {
}); });
return; return;
} }
} // When groupPolicy is "open", only block channels that are EXPLICITLY denied
if (ctx.useAccessGroups && channelConfig?.allowed === false) { // (i.e., have a matching config entry with allow:false). Channels not in the
// config (matchSource undefined) should be allowed under open policy.
const hasExplicitConfig = Boolean(channelConfig?.matchSource);
if (!channelAllowed && (ctx.groupPolicy !== "open" || hasExplicitConfig)) {
await respond({ await respond({
text: "This channel is not allowed.", text: "This channel is not allowed.",
response_type: "ephemeral", response_type: "ephemeral",
@@ -280,6 +282,7 @@ export function registerSlackMonitorSlashCommands(params: {
return; return;
} }
} }
}
const sender = await ctx.resolveUserName(command.user_id); const sender = await ctx.resolveUserName(command.user_id);
const senderName = sender?.name ?? command.user_name ?? command.user_id; const senderName = sender?.name ?? command.user_name ?? command.user_id;