Support wildcard topic in mail permissions

topic: null in a permission entry now matches any topic, allowing
broad grants without specifying a specific topic. set-mail-permission
topic param is now optional; omitting it stores null (wildcard).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 23:00:40 +00:00
parent 64df986a5f
commit d06e11197a
3 changed files with 4 additions and 4 deletions

View File

@@ -92,11 +92,11 @@ export const actions = {
params: [
{ name: 'target_user', required: true, type: 'string' },
{ name: 'to', required: true, type: 'string' },
{ name: 'topic', required: true, type: 'string' },
{ name: 'topic', required: false, type: 'string' },
{ name: 'allow', required: true, type: 'boolean' },
],
policy: 'auto-accept',
handler: ({ target_user, to, topic, allow }, { caller, users, mail_perm_store }) => {
handler: ({ target_user, to, topic = null, allow }, { caller, users, mail_perm_store }) => {
if (!check_can_approve(users, caller, target_user)) {
throw new Error(`Not authorized to set mail permissions for '${target_user}'`);
}

View File

@@ -23,7 +23,7 @@ export function load_mail_perms(file_path) {
}
function check(user, to, topic) {
return allowed.some(e => e.user === user && e.to === to && e.topic === topic);
return allowed.some(e => e.user === user && e.to === to && (e.topic === topic || e.topic === null));
}
function add(user, to, topic) {