diff --git a/CHANGELOG.md b/CHANGELOG.md index 11e206e1..41cc0b91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### Features +- feat: |Frontend| 新增 `DISABLE_SHOW_GITHUB_FOR_USER` 配置,可仅对普通用户隐藏 Header 的 GitHub/版本入口,admin 仍可见(issue #1041) - feat: |Frontend| 将邮箱地址凭证弹窗升级为“地址凭证与连接方式”,复用普通用户与 admin 创建邮箱结果弹窗;支持通过 `ENABLE_AGENT_EMAIL_INFO` 展示 AI Agent 接入信息,并通过 `SMTP_IMAP_PROXY_CONFIG` 展示 SMTP/IMAP 客户端连接信息 - docs: |随机子域名| 在前端“启用随机子域名”提示与 `subdomain` / `worker-vars` 文档(中英)中明确说明:要让 `name@<随机>.abc.com` 真正收到邮件,必须在基础域名 DNS 中为 `*` 子域添加通配 MX 记录,Email Routing 子域不继承父域配置(issue #1035) diff --git a/CHANGELOG_EN.md b/CHANGELOG_EN.md index c6d7519e..770e25bd 100644 --- a/CHANGELOG_EN.md +++ b/CHANGELOG_EN.md @@ -10,6 +10,7 @@ ### Features +- feat: |Frontend| Add `DISABLE_SHOW_GITHUB_FOR_USER` to hide the Header GitHub/version entry from normal users while keeping it visible to admin users (issue #1041) - feat: |Frontend| Upgrade the address credential dialog to "Address Credentials & Connection Methods" and reuse it for both normal users and admin-created addresses; support showing AI Agent access via `ENABLE_AGENT_EMAIL_INFO` and SMTP/IMAP client settings via `SMTP_IMAP_PROXY_CONFIG` - docs: |Random Subdomain| Clarify in the "Use Random Subdomain" frontend tip and the `subdomain` / `worker-vars` docs (zh & en) that receiving mail on `name@.abc.com` requires a wildcard `*` MX record under the base domain in DNS, because Cloudflare Email Routing does not inherit the apex configuration onto subdomains (issue #1035) diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index c6a67e59..7362e665 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -104,6 +104,7 @@ const getOpenSettings = async (message, notification) => { cfTurnstileSiteKey: res["cfTurnstileSiteKey"] || "", enableWebhook: res["enableWebhook"] || false, isS3Enabled: res["isS3Enabled"] || false, + showGithubForUser: res["showGithubForUser"] ?? openSettings.value.showGithubForUser, enableAddressPassword: res["enableAddressPassword"] || false, enableAgentEmailInfo: res["enableAgentEmailInfo"] || false, smtpImapProxyConfig: res["smtpImapProxyConfig"] || openSettings.value.smtpImapProxyConfig, diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index f2b8d699..22e161a7 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -38,6 +38,7 @@ export const useGlobalState = createGlobalState( isS3Enabled: false, enableSendMail: false, showGithub: true, + showGithubForUser: true, disableAdminPasswordCheck: false, enableAddressPassword: false, enableAgentEmailInfo: false, diff --git a/frontend/src/views/Header.vue b/frontend/src/views/Header.vue index e284f8ad..ae1dbccf 100644 --- a/frontend/src/views/Header.vue +++ b/frontend/src/views/Header.vue @@ -103,6 +103,11 @@ const changeLocale = async (lang) => { } const version = import.meta.env.PACKAGE_VERSION ? `v${import.meta.env.PACKAGE_VERSION}` : ""; +const showGithubForCurrentUser = computed(() => { + if (!openSettings.value.showGithub) return false; + if (openSettings.value.showGithubForUser) return true; + return showAdminPage.value; +}); const menuOptions = computed(() => [ { @@ -270,7 +275,7 @@ onMounted(async () => { {