diff --git a/public/locales/en/authentication/login.json b/public/locales/en/authentication/login.json index 33fcdd9d7..dbc8be632 100644 --- a/public/locales/en/authentication/login.json +++ b/public/locales/en/authentication/login.json @@ -14,7 +14,11 @@ "buttons": { "submit": "Sign in" }, - "afterLoginRedirection": "After login, you'll be redirected to {{url}}" + "afterLoginRedirection": "After login, you'll be redirected to {{url}}", + "providersEmpty": { + "title": "Auth Provider Error", + "message": "The provider(s) are unset, please check your logs for more information." + } }, "alert": "Your credentials are incorrect or this account doesn't exist. Please try again." } \ No newline at end of file diff --git a/src/env.js b/src/env.js index d4354b468..203a48be9 100644 --- a/src/env.js +++ b/src/env.js @@ -19,6 +19,7 @@ const portSchema = z .optional(); const envSchema = z.enum(['development', 'test', 'production']); +const validAuthProviders = ['credentials', 'ldap', 'oidc']; const authProviders = process.env.AUTH_PROVIDER?.replaceAll(' ', '').split(',') || ['credentials']; const env = createEnv({ @@ -45,8 +46,22 @@ const env = createEnv({ // Authentication AUTH_PROVIDER: z .string() + .min(1) .default('credentials') - .transform((providers) => providers.replaceAll(' ', '').split(',')), + .transform((providers) => + providers + .replaceAll(' ', '') + .toLowerCase() + .split(',') + .filter((provider) => { + if (validAuthProviders.includes(provider)) return provider; + else if (!provider) + console.log( + `One or more of the entries for AUTH_PROVIDER could not be parsed and/or returned null.` + ); + else console.log(`The value entered for AUTH_PROVIDER "${provider}" is incorrect.`); + }) + ), // LDAP ...(authProviders.includes('ldap') ? { diff --git a/src/pages/auth/login.tsx b/src/pages/auth/login.tsx index 482e1db6e..19b8442f2 100644 --- a/src/pages/auth/login.tsx +++ b/src/pages/auth/login.tsx @@ -124,9 +124,19 @@ export default function LoginPage({ {t('title')} - - {t('text')} - + {(providers.length < 1 && ( + } + title={t('form.providersEmpty.title')} + mt={5} + > + {t('form.providersEmpty.message')} + + )) || ( + + {t('text')} + + )} {isError && ( } color="red">