refactor(zalouser): reuse shared name matching helper

This commit is contained in:
Peter Steinberger
2026-03-13 01:38:35 +00:00
parent c25e46a433
commit 88244c0942
4 changed files with 6 additions and 14 deletions

View File

@@ -22,6 +22,7 @@ import {
DEFAULT_ACCOUNT_ID, DEFAULT_ACCOUNT_ID,
deleteAccountFromConfigSection, deleteAccountFromConfigSection,
formatAllowFromLowercase, formatAllowFromLowercase,
isDangerousNameMatchingEnabled,
isNumericTargetId, isNumericTargetId,
migrateBaseNameToDefaultAccount, migrateBaseNameToDefaultAccount,
normalizeAccountId, normalizeAccountId,
@@ -37,11 +38,7 @@ import {
type ResolvedZalouserAccount, type ResolvedZalouserAccount,
} from "./accounts.js"; } from "./accounts.js";
import { ZalouserConfigSchema } from "./config-schema.js"; import { ZalouserConfigSchema } from "./config-schema.js";
import { import { buildZalouserGroupCandidates, findZalouserGroupEntry } from "./group-policy.js";
buildZalouserGroupCandidates,
findZalouserGroupEntry,
isZalouserDangerousNameMatchingEnabled,
} from "./group-policy.js";
import { resolveZalouserReactionMessageIds } from "./message-sid.js"; import { resolveZalouserReactionMessageIds } from "./message-sid.js";
import { zalouserOnboardingAdapter } from "./onboarding.js"; import { zalouserOnboardingAdapter } from "./onboarding.js";
import { probeZalouser } from "./probe.js"; import { probeZalouser } from "./probe.js";
@@ -220,7 +217,7 @@ function resolveZalouserGroupPolicyEntry(params: ChannelGroupContext) {
groupId: params.groupId, groupId: params.groupId,
groupChannel: params.groupChannel, groupChannel: params.groupChannel,
includeWildcard: true, includeWildcard: true,
allowNameMatching: isZalouserDangerousNameMatchingEnabled(account.config), allowNameMatching: isDangerousNameMatchingEnabled(account.config),
}), }),
); );
} }

View File

@@ -17,12 +17,6 @@ export function normalizeZalouserGroupSlug(raw?: string | null): string {
.replace(/^-+|-+$/g, ""); .replace(/^-+|-+$/g, "");
} }
export function isZalouserDangerousNameMatchingEnabled(params: {
dangerouslyAllowNameMatching?: boolean;
}): boolean {
return params.dangerouslyAllowNameMatching === true;
}
export function buildZalouserGroupCandidates(params: { export function buildZalouserGroupCandidates(params: {
groupId?: string | null; groupId?: string | null;
groupChannel?: string | null; groupChannel?: string | null;

View File

@@ -19,6 +19,7 @@ import {
createScopedPairingAccess, createScopedPairingAccess,
createReplyPrefixOptions, createReplyPrefixOptions,
evaluateGroupRouteAccessForPolicy, evaluateGroupRouteAccessForPolicy,
isDangerousNameMatchingEnabled,
issuePairingChallenge, issuePairingChallenge,
resolveOutboundMediaUrls, resolveOutboundMediaUrls,
mergeAllowlist, mergeAllowlist,
@@ -33,7 +34,6 @@ import {
import { import {
buildZalouserGroupCandidates, buildZalouserGroupCandidates,
findZalouserGroupEntry, findZalouserGroupEntry,
isZalouserDangerousNameMatchingEnabled,
isZalouserGroupEntryAllowed, isZalouserGroupEntryAllowed,
} from "./group-policy.js"; } from "./group-policy.js";
import { formatZalouserMessageSidFull, resolveZalouserMessageSid } from "./message-sid.js"; import { formatZalouserMessageSidFull, resolveZalouserMessageSid } from "./message-sid.js";
@@ -319,7 +319,7 @@ async function processMessage(
}); });
const groups = account.config.groups ?? {}; const groups = account.config.groups ?? {};
const allowNameMatching = isZalouserDangerousNameMatchingEnabled(account.config); const allowNameMatching = isDangerousNameMatchingEnabled(account.config);
if (isGroup) { if (isGroup) {
const groupEntry = findZalouserGroupEntry( const groupEntry = findZalouserGroupEntry(
groups, groups,

View File

@@ -42,6 +42,7 @@ export type { ChannelPlugin } from "../channels/plugins/types.plugin.js";
export { createReplyPrefixOptions } from "../channels/reply-prefix.js"; export { createReplyPrefixOptions } from "../channels/reply-prefix.js";
export { createTypingCallbacks } from "../channels/typing.js"; export { createTypingCallbacks } from "../channels/typing.js";
export type { OpenClawConfig } from "../config/config.js"; export type { OpenClawConfig } from "../config/config.js";
export { isDangerousNameMatchingEnabled } from "../config/dangerous-name-matching.js";
export { export {
resolveDefaultGroupPolicy, resolveDefaultGroupPolicy,
resolveOpenProviderRuntimeGroupPolicy, resolveOpenProviderRuntimeGroupPolicy,