mirror of
https://github.com/hansjone/dsh-im-ops.git
synced 2026-10-09 03:03:24 +08:00
35 lines
814 B
JavaScript
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))
|
|
),
|
|
};
|
|
}
|