mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 16:44:33 +00:00
refactor: share allow-from merge and sender-id checks
This commit is contained in:
34
src/channels/allow-from.ts
Normal file
34
src/channels/allow-from.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export function mergeAllowFromSources(params: {
|
||||
allowFrom?: Array<string | number>;
|
||||
storeAllowFrom?: string[];
|
||||
}): string[] {
|
||||
return [...(params.allowFrom ?? []), ...(params.storeAllowFrom ?? [])]
|
||||
.map((value) => String(value).trim())
|
||||
.filter(Boolean);
|
||||
}
|
||||
|
||||
export function firstDefined<T>(...values: Array<T | undefined>) {
|
||||
for (const value of values) {
|
||||
if (typeof value !== "undefined") {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export function isSenderIdAllowed(
|
||||
allow: { entries: string[]; hasWildcard: boolean; hasEntries: boolean },
|
||||
senderId: string | undefined,
|
||||
allowWhenEmpty: boolean,
|
||||
): boolean {
|
||||
if (!allow.hasEntries) {
|
||||
return allowWhenEmpty;
|
||||
}
|
||||
if (allow.hasWildcard) {
|
||||
return true;
|
||||
}
|
||||
if (!senderId) {
|
||||
return false;
|
||||
}
|
||||
return allow.entries.includes(senderId);
|
||||
}
|
||||
Reference in New Issue
Block a user