Add WhatsApp graded phone ACL (4.9.1-ops.4).

Replace allowlist-only gating with phone-scoped grants: global admins, DM members, per-group admins/members, pending approval via quote YES/NO or settings UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-05 16:45:21 +08:00
parent e5e1e6573a
commit 9f97c44031
15 changed files with 3146 additions and 327 deletions

View file

@ -11,6 +11,49 @@ const EN = Object.freeze({
'机器人设置页签': 'Bot settings tabs',
'投递设置': 'Delivery settings',
'访问设置': 'Access settings',
"WhatsApp 按电话号码授权:全局管理员管私聊;群管理员只批本群。成员不可跨群、有群权也不自动获得私聊权。": "WhatsApp authorizes by phone number: global admins manage DMs; group admins approve only their group. Members do not cross groups, and group access does not grant DMs.",
"保存分级访问设置": "Save graded access settings",
"保存访问与会话设置": "Save access and session settings",
"全局管理员": "Global admins",
"分级访问设置已保存。": "Graded access settings saved.",
"审批失败。": "Approval failed.",
"尚无已知群。可在下方粘贴群 JID(…@g.us),或等群内有人 @ 机器人后自动出现。": "No known groups yet. Paste a group JID (…@g.us) below, or wait until someone @mentions the bot in a group.",
"已批准申请。": "Request approved.",
"已拒绝申请。": "Request denied.",
"当前渠道仍使用旧版访问设置。": "This channel still uses the legacy access settings.",
"待审批": "Pending approval",
"待补电话": "Phone pending",
"批准": "Approve",
"拒绝": "Deny",
"按发言人拆分(推荐)": "Split by speaker (recommended)",
"整群共享一个 Session": "Share one session for the whole group",
"新增管理员": "Add admin",
"暂无待批申请": "No pending requests",
"暂无联系人。私聊或群内触发后会出现在此,便于补齐电话与昵称。": "No contacts yet. People who DM or trigger the bot in a group appear here so you can fill in phones and names.",
"最近联系人(自动沉淀)": "Recent contacts (auto-collected)",
"服务没有返回已保存的访问授权。": "The service did not return the saved access grant.",
"未命名": "Unnamed",
"未配置时,本群申请回落给全局管理员审批(仍只授予本群权)。": "When unset, this group's requests fall back to global admins (still grants only this group).",
"本群授权成员": "Group members",
"本群管理员": "Group admins",
"查看群会话策略说明": "View group session policy details",
"添加群": "Add group",
"添加群 JID": "Add group JID",
"电话": "Phone",
"私聊授权用户": "DM members",
"绑定账号自动为全局管理员,至少保留一位。": "The linked account is a global admin automatically. Keep at least one.",
"绑定账号(全局管理员)": "Linked account (global admin)",
"缺少可用于审批的全局管理员电话。": "No global admin phone is available for approval.",
"群 JID 格式无效。": "Invalid group JID.",
"群会话策略": "Group session policy",
"群内 Session 绑定": "In-group session binding",
"群备注名": "Group display name",
"群授权": "Group grants",
"访问与群会话设置已保存。": "Access and group session settings saved.",
"访问授权保存失败,请稍后重试。": "Could not save the access grant. Try again later.",
"访问授权暂不可用。": "Access grant settings are currently unavailable.",
"运维默认按发言人拆分 Session,避免同群多人互相打断;可选改回整群共享 Session。": "Ops defaults to one session per speaker so group members do not interrupt each other. You can switch back to one shared group session.",
"(电话未解析,请先在联系人中确认)": "(Phone unresolved — confirm it in contacts first)",
'查看访问权限说明': 'View access permission details',
'允许所有用户': 'Allow all users',
'仅白名单用户': 'Allowlisted users only',