diff --git a/api/services/feature_service.py b/api/services/feature_service.py index 6bd82a2757..0386c6acea 100644 --- a/api/services/feature_service.py +++ b/api/services/feature_service.py @@ -63,6 +63,7 @@ class SystemFeatureModel(BaseModel): enable_social_oauth_login: bool = False is_allow_register: bool = False is_allow_create_workspace: bool = False + is_email_setup: bool = False license: LicenseModel = LicenseModel() @@ -98,6 +99,7 @@ class FeatureService: system_features.enable_social_oauth_login = dify_config.ENABLE_SOCIAL_OAUTH_LOGIN system_features.is_allow_register = dify_config.ALLOW_REGISTER system_features.is_allow_create_workspace = dify_config.ALLOW_CREATE_WORKSPACE + system_features.is_email_setup = dify_config.MAIL_TYPE is not None and dify_config.MAIL_TYPE != "" @classmethod def _fulfill_params_from_env(cls, features: FeatureModel): diff --git a/web/app/signin/components/mail-and-password-auth.tsx b/web/app/signin/components/mail-and-password-auth.tsx index 210c877bb7..97f8bd1bec 100644 --- a/web/app/signin/components/mail-and-password-auth.tsx +++ b/web/app/signin/components/mail-and-password-auth.tsx @@ -12,12 +12,13 @@ import I18NContext from '@/context/i18n' type MailAndPasswordAuthProps = { isInvite: boolean + isEmailSetup: boolean allowRegistration: boolean } const passwordRegex = /^(?=.*[a-zA-Z])(?=.*\d).{8,}$/ -export default function MailAndPasswordAuth({ isInvite, allowRegistration }: MailAndPasswordAuthProps) { +export default function MailAndPasswordAuth({ isInvite, isEmailSetup, allowRegistration }: MailAndPasswordAuthProps) { const { t } = useTranslation() const { locale } = useContext(I18NContext) const router = useRouter() @@ -124,7 +125,12 @@ export default function MailAndPasswordAuth({ isInvite, allowRegistration }: Mai
diff --git a/web/app/signin/normalForm.tsx b/web/app/signin/normalForm.tsx index 783d8ac507..1911fa35c6 100644 --- a/web/app/signin/normalForm.tsx +++ b/web/app/signin/normalForm.tsx @@ -163,7 +163,7 @@ const NormalForm = () => {
} } {systemFeatures.enable_email_password_login && authType === 'password' && <> - + {systemFeatures.enable_email_code_login &&
{ updateAuthType('code') }}> {t('login.useVerificationCode')}
} diff --git a/web/types/feature.ts b/web/types/feature.ts index 47e8e1aad1..053ce3d7c9 100644 --- a/web/types/feature.ts +++ b/web/types/feature.ts @@ -29,6 +29,7 @@ export type SystemFeatures = { enable_social_oauth_login: boolean is_allow_create_workspace: boolean is_allow_register: boolean + is_email_setup: boolean license: License } @@ -43,6 +44,7 @@ export const defaultSystemFeatures: SystemFeatures = { enable_social_oauth_login: false, is_allow_create_workspace: false, is_allow_register: false, + is_email_setup: false, license: { status: LicenseStatus.NONE, expired_at: '',