Spaces:
Paused
Paused
| import type { SlackMonitorContext } from "./context.js"; | |
| import { readChannelAllowFromStore } from "../../pairing/pairing-store.js"; | |
| import { allowListMatches, normalizeAllowList, normalizeAllowListLower } from "./allow-list.js"; | |
| export async function resolveSlackEffectiveAllowFrom(ctx: SlackMonitorContext) { | |
| const storeAllowFrom = await readChannelAllowFromStore("slack").catch(() => []); | |
| const allowFrom = normalizeAllowList([...ctx.allowFrom, ...storeAllowFrom]); | |
| const allowFromLower = normalizeAllowListLower(allowFrom); | |
| return { allowFrom, allowFromLower }; | |
| } | |
| export function isSlackSenderAllowListed(params: { | |
| allowListLower: string[]; | |
| senderId: string; | |
| senderName?: string; | |
| }) { | |
| const { allowListLower, senderId, senderName } = params; | |
| return ( | |
| allowListLower.length === 0 || | |
| allowListMatches({ | |
| allowList: allowListLower, | |
| id: senderId, | |
| name: senderName, | |
| }) | |
| ); | |
| } | |