/* 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} /> {t('security_setting.Local.enable_local')} {!adminGeneralSecurityContainer.state.setupStrategies.includes('local') && isLocalEnabled && ( {t('security_setting.setup_is_not_yet_complete')} )} {isLocalEnabled && ( {t('security_setting.configuration')} {t('Register limitation')} {registrationMode === 'Open' && t('security_setting.registration_mode.open')} {registrationMode === 'Restricted' && t('security_setting.registration_mode.restricted')} {registrationMode === 'Closed' && t('security_setting.registration_mode.closed')} { adminLocalSecurityContainer.changeRegistrationMode('Open'); }} > {t('security_setting.registration_mode.open')} { adminLocalSecurityContainer.changeRegistrationMode('Restricted'); }} > {t('security_setting.registration_mode.restricted')} { adminLocalSecurityContainer.changeRegistrationMode('Closed'); }} > {t('security_setting.registration_mode.closed')} {t('security_setting.Register limitation desc')} adminLocalSecurityContainer.changeRegistrationWhiteList(e.target.value)} /> {t('security_setting.restrict_emails')} {t('security_setting.for_example')} @growi.org {t('security_setting.in_this_case')} {t('security_setting.insert_single')} {t('security_setting.Local.password_reset_by_users')} adminLocalSecurityContainer.switchIsPasswordResetEnabled()} /> {t('security_setting.Local.enable_password_reset_by_users')} {t('security_setting.Local.password_reset_desc')} {t('security_setting.Local.email_authentication')} adminLocalSecurityContainer.switchIsEmailAuthenticationEnabled()} /> {t('security_setting.Local.enable_email_authentication')} {!isMailerSetup && ( {t('security_setting.Local.please_enable_mailer')} {t('admin:app_setting.mail_settings')} )} {t('security_setting.Local.enable_email_authentication_desc')} {t('Update')} )} ); } } LocalSecuritySettingContents.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired, adminLocalSecurityContainer: PropTypes.instanceOf(AdminLocalSecurityContainer).isRequired, }; const LocalSecuritySettingContentsWrapperFC = (props) => { const { t } = useTranslation(); return ; }; const LocalSecuritySettingContentsWrapper = withUnstatedContainers(LocalSecuritySettingContentsWrapperFC, [ AppContainer, AdminGeneralSecurityContainer, AdminLocalSecurityContainer, ]); export default LocalSecuritySettingContentsWrapper;
{t('Error occurred')} : {adminLocalSecurityContainer.state.retrieveError}
{t('security_setting.Register limitation desc')}
{t('security_setting.restrict_emails')} {t('security_setting.for_example')} @growi.org {t('security_setting.in_this_case')} {t('security_setting.insert_single')}
@growi.org
{t('security_setting.Local.password_reset_desc')}
{t('security_setting.Local.enable_email_authentication_desc')}