dsh-im-ops/test/channels/access-policy-fixture.mjs
2026-09-01 10:46:41 +08:00

35 lines
814 B
JavaScript

export { COMMAND_PERMISSION_DENIED_MESSAGE } from '../../src/channels/shared/inbound-access.mjs';
function scope(users = []) {
return {
mode: 'allowlist',
open: {
defaultCanExecuteCommands: false,
commandPermissionOverrides: [],
},
allowlist: {
users: users.map(({ id, canExecuteCommands = false }) => ({
id,
canExecuteCommands,
})),
},
};
}
export function directAccessPolicy({
users = [],
privilegedIds = [],
} = {}) {
const privileged = new Set(privilegedIds);
const settings = {
direct: scope(users),
group: scope(),
};
return {
getSettings: () => settings,
isPrivileged: (senderIds) => (
(Array.isArray(senderIds) ? senderIds : [senderIds])
.some((senderId) => privileged.has(senderId))
),
};
}