fix: 重置密码功能新增UI配置发送邮件域名

This commit is contained in:
shaw
2026-03-15 17:52:29 +08:00
parent 8321e4a647
commit ae44a94325
11 changed files with 62 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ export interface SystemSettings {
registration_email_suffix_whitelist: string[]
promo_code_enabled: boolean
password_reset_enabled: boolean
frontend_url: string
invitation_code_enabled: boolean
totp_enabled: boolean // TOTP 双因素认证
totp_encryption_key_configured: boolean // TOTP 加密密钥是否已配置
@@ -91,6 +92,7 @@ export interface UpdateSettingsRequest {
registration_email_suffix_whitelist?: string[]
promo_code_enabled?: boolean
password_reset_enabled?: boolean
frontend_url?: string
invitation_code_enabled?: boolean
totp_enabled?: boolean // TOTP 双因素认证
default_balance?: number

View File

@@ -3966,6 +3966,9 @@ export default {
invitationCodeHint: 'When enabled, users must enter a valid invitation code to register',
passwordReset: 'Password Reset',
passwordResetHint: 'Allow users to reset their password via email',
frontendUrl: 'Frontend URL',
frontendUrlPlaceholder: 'https://example.com',
frontendUrlHint: 'Used to generate password reset links in emails. Example: https://example.com',
totp: 'Two-Factor Authentication (2FA)',
totpHint: 'Allow users to use authenticator apps like Google Authenticator',
totpKeyNotConfigured:

View File

@@ -4140,6 +4140,9 @@ export default {
invitationCodeHint: '开启后,用户注册时需要填写有效的邀请码',
passwordReset: '忘记密码',
passwordResetHint: '允许用户通过邮箱重置密码',
frontendUrl: '前端地址',
frontendUrlPlaceholder: 'https://example.com',
frontendUrlHint: '用于生成邮件中的密码重置链接,例如 https://example.com',
totp: '双因素认证 (2FA)',
totpHint: '允许用户使用 Google Authenticator 等应用进行二次验证',
totpKeyNotConfigured:

View File

@@ -653,6 +653,24 @@
</div>
<Toggle v-model="form.password_reset_enabled" />
</div>
<!-- Frontend URL - Only show when password reset is enabled -->
<div
v-if="form.email_verify_enabled && form.password_reset_enabled"
class="border-t border-gray-100 pt-4 dark:border-dark-700"
>
<label class="mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300">
{{ t('admin.settings.registration.frontendUrl') }}
</label>
<input
v-model="form.frontend_url"
type="url"
class="input"
:placeholder="t('admin.settings.registration.frontendUrlPlaceholder')"
/>
<p class="mt-1.5 text-xs text-gray-500 dark:text-gray-400">
{{ t('admin.settings.registration.frontendUrlHint') }}
</p>
</div>
<!-- TOTP 2FA -->
<div
@@ -1586,6 +1604,7 @@
</div>
<Toggle v-model="form.smtp_use_tls" />
</div>
</div>
</div>
@@ -1820,6 +1839,7 @@ const form = reactive<SettingsForm>({
purchase_subscription_url: '',
sora_client_enabled: false,
custom_menu_items: [] as Array<{id: string; label: string; icon_svg: string; url: string; visibility: 'user' | 'admin'; sort_order: number}>,
frontend_url: '',
smtp_host: '',
smtp_port: 587,
smtp_username: '',
@@ -2097,6 +2117,7 @@ async function saveSettings() {
purchase_subscription_url: form.purchase_subscription_url,
sora_client_enabled: form.sora_client_enabled,
custom_menu_items: form.custom_menu_items,
frontend_url: form.frontend_url,
smtp_host: form.smtp_host,
smtp_port: form.smtp_port,
smtp_username: form.smtp_username,