feat: 添加管理员白名单配置,支持多个通知类型的管理员设置

This commit is contained in:
jxxghp
2026-06-08 13:40:17 +08:00
parent 4362bbed42
commit 19710a5f0f
4 changed files with 95 additions and 0 deletions

View File

@@ -915,6 +915,16 @@ onMounted(() => {
prepend-inner-icon="mdi-pound"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationInfo.config.SLACK_ADMINS"
:label="t('notification.slack.admins')"
:placeholder="t('notification.slack.adminsPlaceholder')"
:hint="t('notification.slack.adminsHint')"
persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/>
</VCol>
</VRow>
<VRow v-else-if="notificationInfo.type == 'discord'">
<VCol cols="12" md="6">
@@ -956,6 +966,16 @@ onMounted(() => {
prepend-inner-icon="mdi-pound-box"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationInfo.config.DISCORD_ADMINS"
:label="t('notification.discord.admins')"
:placeholder="t('notification.discord.adminsPlaceholder')"
:hint="t('notification.discord.adminsHint')"
persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/>
</VCol>
</VRow>
<VRow v-else-if="notificationInfo.type == 'synologychat'">
<VCol cols="12" md="6">
@@ -986,6 +1006,16 @@ onMounted(() => {
prepend-inner-icon="mdi-key"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationInfo.config.SYNOLOGYCHAT_ADMINS"
:label="t('notification.synologychat.admins')"
:placeholder="t('notification.synologychat.adminsPlaceholder')"
:hint="t('notification.synologychat.adminsHint')"
persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/>
</VCol>
</VRow>
<VRow v-else-if="notificationInfo.type == 'vocechat'">
<VCol cols="12" md="6">
@@ -1026,6 +1056,16 @@ onMounted(() => {
prepend-inner-icon="mdi-pound"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationInfo.config.VOCECHAT_ADMINS"
:label="t('notification.vocechat.admins')"
:placeholder="t('notification.vocechat.adminsPlaceholder')"
:hint="t('notification.vocechat.adminsHint')"
persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/>
</VCol>
</VRow>
<VRow v-else-if="notificationInfo.type == 'qqbot'">
<VCol cols="12" md="6">
@@ -1076,6 +1116,16 @@ onMounted(() => {
prepend-inner-icon="mdi-account-group"
/>
</VCol>
<VCol cols="12" md="6">
<VTextField
v-model="notificationInfo.config.QQBOT_ADMINS"
:label="t('notification.qqbot.admins')"
:placeholder="t('notification.qqbot.adminsPlaceholder')"
:hint="t('notification.qqbot.adminsHint')"
persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/>
</VCol>
</VRow>
<VRow v-else-if="notificationInfo.type == 'webpush'">
<VCol cols="12" md="6">

View File

@@ -586,6 +586,9 @@ export default {
channel: 'Channel Name',
channelHint: 'Channel to send messages, default is "all"',
channelRequired: 'Channel Name cannot be empty',
admins: 'Admin Whitelist',
adminsHint: 'User IDs that can use admin menu and commands, separated by commas',
adminsPlaceholder: 'User IDs list, separated by commas',
},
discord: {
name: 'Discord',
@@ -598,6 +601,9 @@ export default {
channelId: 'Channel ID',
channelIdHint: 'Optional, default broadcast channel; leave blank to auto-pick a writable channel',
channelIdPlaceholder: '123456789012345678',
admins: 'Admin Whitelist',
adminsHint: 'User IDs that can use admin menu and commands, separated by commas',
adminsPlaceholder: 'User IDs list, separated by commas',
},
synologychat: {
name: 'Synology Chat',
@@ -606,6 +612,9 @@ export default {
webhookRequired: 'Webhook URL cannot be empty',
token: 'Token',
tokenHint: 'Synology Chat bot token',
admins: 'Admin Whitelist',
adminsHint: 'User IDs that can use admin menu and commands, separated by commas',
adminsPlaceholder: 'User IDs list, separated by commas',
},
vocechat: {
name: 'VoceChat',
@@ -617,6 +626,9 @@ export default {
apiKeyRequired: 'API Key cannot be empty',
channelId: 'Channel ID',
channelIdHint: 'VoceChat channel ID, without #',
admins: 'Admin Whitelist',
adminsHint: 'User IDs that can use admin menu and commands, separated by commas',
adminsPlaceholder: 'User IDs list, separated by commas',
},
webpush: {
name: 'WebPush',
@@ -638,6 +650,9 @@ export default {
groupOpenId: 'Group OpenID',
groupOpenIdHint: 'Default group openid (group chat), use either this or User OpenID',
groupOpenIdPlaceholder: 'Group openid',
admins: 'Admin Whitelist',
adminsHint: 'User IDs that can use admin menu and commands, separated by commas',
adminsPlaceholder: 'User IDs list, separated by commas',
},
},
shortcut: {

View File

@@ -582,6 +582,9 @@ export default {
channel: '频道名称',
channelHint: '消息发送频道,默认`全体`',
channelRequired: '频道名称不能为空',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表多个ID使用,分隔',
adminsPlaceholder: '用户ID列表多个ID使用,分隔',
},
discord: {
name: 'Discord',
@@ -594,6 +597,9 @@ export default {
channelId: '频道 ID',
channelIdHint: '可选,默认广播频道;为空则自动选择可发送消息的频道',
channelIdPlaceholder: '123456789012345678',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表多个ID使用,分隔',
adminsPlaceholder: '用户ID列表多个ID使用,分隔',
},
synologychat: {
name: 'Synology Chat',
@@ -602,6 +608,9 @@ export default {
webhookRequired: 'Webhook URL不能为空',
token: '令牌',
tokenHint: 'Synology Chat机器人令牌',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表多个ID使用,分隔',
adminsPlaceholder: '用户ID列表多个ID使用,分隔',
},
vocechat: {
name: 'VoceChat',
@@ -613,6 +622,9 @@ export default {
apiKeyRequired: 'API密钥不能为空',
channelId: '频道ID',
channelIdHint: 'VoceChat的频道ID不包含#号',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表多个ID使用,分隔',
adminsPlaceholder: '用户ID列表多个ID使用,分隔',
},
webpush: {
name: 'WebPush',
@@ -634,6 +646,9 @@ export default {
groupOpenId: '群组 OpenID',
groupOpenIdHint: '默认群组 openid群聊与用户 OpenID 二选一',
groupOpenIdPlaceholder: '群组 openid',
admins: '管理员白名单',
adminsHint: '可使用管理菜单及命令的用户ID列表多个ID使用,分隔',
adminsPlaceholder: '用户ID列表多个ID使用,分隔',
},
},
shortcut: {

View File

@@ -582,6 +582,9 @@ export default {
channel: '頻道名稱',
channelHint: '消息發送頻道,默認`全體`',
channelRequired: '頻道名稱不能為空',
admins: '管理員白名單',
adminsHint: '可使用管理菜單及命令的用戶ID列表多個ID使用,分隔',
adminsPlaceholder: '用戶ID列表多個ID使用,分隔',
},
discord: {
name: 'Discord',
@@ -594,6 +597,9 @@ export default {
channelId: '頻道 ID',
channelIdHint: '可選,預設廣播頻道;空白則自動選擇可發送消息的頻道',
channelIdPlaceholder: '123456789012345678',
admins: '管理員白名單',
adminsHint: '可使用管理菜單及命令的用戶ID列表多個ID使用,分隔',
adminsPlaceholder: '用戶ID列表多個ID使用,分隔',
},
synologychat: {
name: 'Synology Chat',
@@ -602,6 +608,9 @@ export default {
webhookRequired: 'Webhook URL不能為空',
token: '令牌',
tokenHint: 'Synology Chat機器人令牌',
admins: '管理員白名單',
adminsHint: '可使用管理菜單及命令的用戶ID列表多個ID使用,分隔',
adminsPlaceholder: '用戶ID列表多個ID使用,分隔',
},
vocechat: {
name: 'VoceChat',
@@ -613,6 +622,9 @@ export default {
apiKeyRequired: 'API密鑰不能為空',
channelId: '頻道ID',
channelIdHint: 'VoceChat的頻道ID不包含#號',
admins: '管理員白名單',
adminsHint: '可使用管理菜單及命令的用戶ID列表多個ID使用,分隔',
adminsPlaceholder: '用戶ID列表多個ID使用,分隔',
},
webpush: {
name: 'WebPush',
@@ -634,6 +646,9 @@ export default {
groupOpenId: '群組 OpenID',
groupOpenIdHint: '默認群組 openid群聊與用戶 OpenID 二選一',
groupOpenIdPlaceholder: '群組 openid',
admins: '管理員白名單',
adminsHint: '可使用管理菜單及命令的用戶ID列表多個ID使用,分隔',
adminsPlaceholder: '用戶ID列表多個ID使用,分隔',
},
},
shortcut: {