/* eslint-disable react/no-danger */ import React from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer'; import AdminLocalSecurityContainer from '~/client/services/AdminLocalSecurityContainer'; import AppContainer from '~/client/services/AppContainer'; import { toastSuccess, toastError } from '~/client/util/apiNotification'; import { withUnstatedContainers } from '../../UnstatedUtils'; class LocalSecuritySettingContents extends React.Component { constructor(props) { super(props); this.onClickSubmit = this.onClickSubmit.bind(this); } async onClickSubmit() { const { t, adminGeneralSecurityContainer, adminLocalSecurityContainer } = this.props; try { await adminLocalSecurityContainer.updateLocalSecuritySetting(); await adminGeneralSecurityContainer.retrieveSetupStratedies(); toastSuccess(t('security_setting.updated_general_security_setting')); } catch (err) { toastError(err); } } render() { const { t, adminGeneralSecurityContainer, adminLocalSecurityContainer, appContainer, } = this.props; const { registrationMode, isPasswordResetEnabled, isEmailAuthenticationEnabled } = adminLocalSecurityContainer.state; const { isLocalEnabled } = adminGeneralSecurityContainer.state; const { isMailerSetup } = appContainer.config; return ( {adminLocalSecurityContainer.state.retrieveError != null && (

{t('Error occurred')} : {adminLocalSecurityContainer.state.retrieveError}

)}

{t('security_setting.Local.name')}

{!isMailerSetup && (
{t('security_setting.Local.need_complete_mail_setting_warning')} {t('admin:app_setting.mail_settings')}
)} {adminLocalSecurityContainer.state.useOnlyEnvVars && (

)}

adminGeneralSecurityContainer.switchIsLocalEnabled()} disabled={adminLocalSecurityContainer.state.useOnlyEnvVars} />
{!adminGeneralSecurityContainer.state.setupStrategies.includes('local') && isLocalEnabled && (
{t('security_setting.setup_is_not_yet_complete')}
)}
{isLocalEnabled && (

{t('security_setting.configuration')}

{t('Register limitation')}

{t('security_setting.Register limitation desc')}