diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index ab6f04c40..20fdc6e23 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -2465,6 +2465,7 @@ export interface OIDCProvider { scopes: string; is_enabled: boolean; auto_create_users: boolean; + auto_link_existing_accounts: boolean; icon_url?: string | null; } @@ -2476,6 +2477,7 @@ export interface OIDCProviderCreate { scopes?: string; is_enabled?: boolean; auto_create_users?: boolean; + auto_link_existing_accounts?: boolean; icon_url?: string | null; } diff --git a/frontend/src/components/OIDCProviderSettings.tsx b/frontend/src/components/OIDCProviderSettings.tsx index f54678633..b1452e500 100644 --- a/frontend/src/components/OIDCProviderSettings.tsx +++ b/frontend/src/components/OIDCProviderSettings.tsx @@ -18,6 +18,7 @@ const EMPTY_FORM: OIDCProviderCreate = { scopes: 'openid email profile', is_enabled: true, auto_create_users: false, + auto_link_existing_accounts: false, icon_url: undefined, }; @@ -107,6 +108,13 @@ function ProviderForm({

{t('settings.oidc.form.autoCreateDesc')}

+
@@ -295,6 +303,7 @@ export function OIDCProviderSettings() { scopes: provider.scopes, is_enabled: provider.is_enabled, auto_create_users: provider.auto_create_users, + auto_link_existing_accounts: provider.auto_link_existing_accounts, icon_url: provider.icon_url ?? undefined, }} onSave={(data) => updateMutation.mutate({ id: provider.id, data })} @@ -322,6 +331,12 @@ export function OIDCProviderSettings() { {provider.auto_create_users ? t('common.yes') : t('common.no')}
+
+
{t('settings.oidc.form.autoLink')}
+
+ {provider.auto_link_existing_accounts ? t('common.yes') : t('common.no')} +
+
)} diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index 8f77a4f3a..43044f180 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -2146,6 +2146,8 @@ export default { enabled: 'Aktiviert', autoCreate: 'Benutzer automatisch anlegen', autoCreateDesc: 'Erstellt beim ersten Login automatisch ein lokales Konto.', + autoLink: 'Bestehende Konten automatisch verknüpfen', + autoLinkDesc: 'Verknüpft beim ersten Login vorhandene lokale Konten anhand der E-Mail-Adresse.', secretHint: 'leer lassen zum Beibehalten', secretPlaceholder: 'neues Secret', }, diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 82db12c1a..827e71764 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -2167,6 +2167,8 @@ export default { enabled: 'Enabled', autoCreate: 'Auto-create users', autoCreateDesc: 'Automatically create a local account on first login.', + autoLink: 'Auto-link existing accounts', + autoLinkDesc: 'Link existing local accounts by matching email on first login.', secretHint: 'leave blank to keep current', secretPlaceholder: 'new secret', }, diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index 532219c15..8449b0b79 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -2107,6 +2107,8 @@ export default { enabled: 'Activé', autoCreate: 'Créer les utilisateurs automatiquement', autoCreateDesc: 'Crée automatiquement un compte local lors de la première connexion.', + autoLink: 'Lier automatiquement les comptes existants', + autoLinkDesc: 'Lie les comptes locaux existants par e-mail lors de la première connexion.', secretHint: 'laisser vide pour conserver', secretPlaceholder: 'nouveau secret', }, diff --git a/frontend/src/i18n/locales/it.ts b/frontend/src/i18n/locales/it.ts index efea87783..c7ab27a24 100644 --- a/frontend/src/i18n/locales/it.ts +++ b/frontend/src/i18n/locales/it.ts @@ -2106,6 +2106,8 @@ export default { enabled: 'Abilitato', autoCreate: 'Crea utenti automaticamente', autoCreateDesc: 'Crea automaticamente un account locale al primo accesso.', + autoLink: 'Collega automaticamente gli account esistenti', + autoLinkDesc: 'Collega gli account locali esistenti tramite email al primo accesso.', secretHint: 'lascia vuoto per mantenere', secretPlaceholder: 'nuovo segreto', }, diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index 4191e3463..57aec30fb 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -2145,6 +2145,8 @@ export default { enabled: '有効', autoCreate: 'ユーザーを自動作成', autoCreateDesc: '初回ログイン時にローカルアカウントを自動的に作成します。', + autoLink: '既存アカウントを自動リンク', + autoLinkDesc: '初回ログイン時にメールアドレスで既存のローカルアカウントにリンクします。', secretHint: '空白のままで現在のものを維持', secretPlaceholder: '新しいシークレット', }, diff --git a/frontend/src/i18n/locales/pt-BR.ts b/frontend/src/i18n/locales/pt-BR.ts index 05d3d7394..b24a3769a 100644 --- a/frontend/src/i18n/locales/pt-BR.ts +++ b/frontend/src/i18n/locales/pt-BR.ts @@ -2106,6 +2106,8 @@ export default { enabled: 'Ativado', autoCreate: 'Criar usuários automaticamente', autoCreateDesc: 'Cria automaticamente uma conta local no primeiro login.', + autoLink: 'Vincular contas existentes automaticamente', + autoLinkDesc: 'Vincula contas locais existentes por e-mail no primeiro login.', secretHint: 'deixe em branco para manter', secretPlaceholder: 'novo segredo', }, diff --git a/frontend/src/i18n/locales/zh-CN.ts b/frontend/src/i18n/locales/zh-CN.ts index f0787ab65..093dc6a4a 100644 --- a/frontend/src/i18n/locales/zh-CN.ts +++ b/frontend/src/i18n/locales/zh-CN.ts @@ -2106,6 +2106,8 @@ export default { enabled: '已启用', autoCreate: '自动创建用户', autoCreateDesc: '首次登录时自动创建本地账户。', + autoLink: '自动关联已有账户', + autoLinkDesc: '首次登录时通过邮箱匹配现有本地账户并自动关联。', secretHint: '留空以保留当前', secretPlaceholder: '新密钥', },