refactor: share sender group policy evaluation

This commit is contained in:
Peter Steinberger
2026-03-07 23:12:09 +00:00
parent d228a62143
commit 8c15b8600c
4 changed files with 22 additions and 27 deletions

View File

@@ -3,6 +3,7 @@ import type {
ChannelGroupContext,
GroupToolPolicyConfig,
} from "openclaw/plugin-sdk/feishu";
import { evaluateSenderGroupAccessForPolicy } from "openclaw/plugin-sdk/feishu";
import { normalizeFeishuTarget } from "./targets.js";
import type { FeishuConfig, FeishuGroupConfig } from "./types.js";
@@ -98,14 +99,12 @@ export function isFeishuGroupAllowed(params: {
senderIds?: Array<string | null | undefined>;
senderName?: string | null;
}): boolean {
const { groupPolicy } = params;
if (groupPolicy === "disabled") {
return false;
}
if (groupPolicy === "open" || groupPolicy === "allowall") {
return true;
}
return resolveFeishuAllowlistMatch(params).allowed;
return evaluateSenderGroupAccessForPolicy({
groupPolicy: params.groupPolicy === "allowall" ? "open" : params.groupPolicy,
groupAllowFrom: params.allowFrom.map((entry) => String(entry)),
senderId: params.senderId,
isSenderAllowed: () => resolveFeishuAllowlistMatch(params).allowed,
}).allowed;
}
export function resolveFeishuReplyPolicy(params: {