diff --git a/backend/apps/webui/main.py b/backend/apps/webui/main.py index 997a05974..97165a11b 100644 --- a/backend/apps/webui/main.py +++ b/backend/apps/webui/main.py @@ -35,6 +35,7 @@ from config import ( DEFAULT_PROMPT_SUGGESTIONS, DEFAULT_USER_ROLE, ENABLE_SIGNUP, + ENABLE_LOGIN_FORM, USER_PERMISSIONS, WEBHOOK_URL, WEBUI_AUTH_TRUSTED_EMAIL_HEADER, @@ -64,6 +65,7 @@ origins = ["*"] app.state.config = AppConfig() app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP +app.state.config.ENABLE_LOGIN_FORM = ENABLE_LOGIN_FORM app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER app.state.AUTH_TRUSTED_NAME_HEADER = WEBUI_AUTH_TRUSTED_NAME_HEADER diff --git a/backend/config.py b/backend/config.py index be64f6e6d..395720c18 100644 --- a/backend/config.py +++ b/backend/config.py @@ -719,6 +719,12 @@ ENABLE_SIGNUP = PersistentConfig( ), ) +ENABLE_LOGIN_FORM = PersistentConfig( + "ENABLE_LOGIN_FORM", + "ui.ENABLE_LOGIN_FORM", + os.environ.get("ENABLE_LOGIN_FORM", "True").lower() == "true", +) + DEFAULT_LOCALE = PersistentConfig( "DEFAULT_LOCALE", "ui.default_locale", diff --git a/backend/main.py b/backend/main.py index 62f07a868..16d7b2b40 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1995,6 +1995,7 @@ async def get_app_config(): "auth": WEBUI_AUTH, "auth_trusted_header": bool(webui_app.state.AUTH_TRUSTED_EMAIL_HEADER), "enable_signup": webui_app.state.config.ENABLE_SIGNUP, + "enable_login_form": webui_app.state.config.ENABLE_LOGIN_FORM, "enable_web_search": rag_app.state.config.ENABLE_RAG_WEB_SEARCH, "enable_image_generation": images_app.state.config.ENABLED, "enable_community_sharing": webui_app.state.config.ENABLE_COMMUNITY_SHARING, diff --git a/src/lib/stores/index.ts b/src/lib/stores/index.ts index bf8fb20c7..1b0257c4b 100644 --- a/src/lib/stores/index.ts +++ b/src/lib/stores/index.ts @@ -145,6 +145,7 @@ type Config = { auth: boolean; auth_trusted_header: boolean; enable_signup: boolean; + enable_login_form: boolean; enable_web_search?: boolean; enable_image_generation: boolean; enable_admin_export: boolean; diff --git a/src/routes/auth/+page.svelte b/src/routes/auth/+page.svelte index 830ac3a5b..b0f13e386 100644 --- a/src/routes/auth/+page.svelte +++ b/src/routes/auth/+page.svelte @@ -173,88 +173,94 @@ {/if} -
- {#if mode === 'signup'} -
-
{$i18n.t('Name')}
+ {#if $config?.features.enable_login_form} +
+ {#if mode === 'signup'} +
+
{$i18n.t('Name')}
+ +
+ +
+ {/if} + +
+
{$i18n.t('Email')}
-
- {/if} +
+
{$i18n.t('Password')}
-
-
{$i18n.t('Email')}
- -
- -
-
{$i18n.t('Password')}
- - -
-
- -
- - - {#if $config?.features.enable_signup} -
- {mode === 'signin' - ? $i18n.t("Don't have an account?") - : $i18n.t('Already have an account?')} - - +
- {/if} -
+
+ {/if} + + {#if $config?.features.enable_login_form} +
+ + + {#if $config?.features.enable_signup} +
+ {mode === 'signin' + ? $i18n.t("Don't have an account?") + : $i18n.t('Already have an account?')} + + +
+ {/if} +
+ {/if} {#if Object.keys($config?.oauth?.providers ?? {}).length > 0}

- {$i18n.t('or')} + {#if $config?.features.enable_login_form} + {$i18n.t('or')} + {/if}
{#if $config?.oauth?.providers?.google}