Skip to content

Commit b98fd12

Browse files
committed
fix: preserve sender-level groupAllowFrom check when group is allowed
When a group is explicitly allowed via groups config, still enforce sender-level gating if groupAllowFrom is configured. This prevents an authorization regression where previously blocked senders would be accepted in allowed groups. Addresses review feedback from code review bot.
1 parent 4797438 commit b98fd12

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/signal/monitor/event-handler.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ export function createSignalEventHandler(deps: SignalEventHandlerDeps) {
523523
hasGroupAllowFrom: deps.groupAllowFrom.length > 0,
524524
});
525525
if (!channelGroupPolicy.allowed) {
526-
// Fall back to sender-level check only if no explicit groups config matched
526+
// Group not explicitly allowed — check sender-level groupAllowFrom
527527
const groupAccess = resolveAccessDecision(true);
528528
if (groupAccess.decision !== "allow") {
529529
if (groupAccess.reasonCode === DM_GROUP_ACCESS_REASON.GROUP_POLICY_DISABLED) {
@@ -537,6 +537,15 @@ export function createSignalEventHandler(deps: SignalEventHandlerDeps) {
537537
}
538538
return;
539539
}
540+
} else if (deps.groupAllowFrom.length > 0) {
541+
// Group is allowed, but still enforce sender-level gating if groupAllowFrom is configured
542+
const groupAccess = resolveAccessDecision(true);
543+
if (groupAccess.decision !== "allow") {
544+
logVerbose(
545+
`Blocked signal group sender ${senderDisplay} (group allowed, sender not in groupAllowFrom)`,
546+
);
547+
return;
548+
}
540549
}
541550
}
542551

0 commit comments

Comments
 (0)