/* 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 AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer'; import { toastSuccess, toastError } from '~/client/util/apiNotification'; import { withUnstatedContainers } from '../../UnstatedUtils'; class OidcSecurityManagementContents extends React.Component { constructor(props) { super(props); this.onClickSubmit = this.onClickSubmit.bind(this); } async onClickSubmit() { const { t, adminOidcSecurityContainer, adminGeneralSecurityContainer } = this.props; try { await adminOidcSecurityContainer.updateOidcSetting(); await adminGeneralSecurityContainer.retrieveSetupStratedies(); toastSuccess(t('security_setting.OAuth.OIDC.updated_oidc')); } catch (err) { toastError(err); } } render() { const { t, adminGeneralSecurityContainer, adminOidcSecurityContainer } = this.props; const { isOidcEnabled } = adminGeneralSecurityContainer.state; return ( {t('security_setting.OAuth.OIDC.name')} { adminGeneralSecurityContainer.switchIsOidcEnabled() }} /> {t('security_setting.OAuth.enable_oidc')} {(!adminGeneralSecurityContainer.state.setupStrategies.includes('oidc') && isOidcEnabled) && {t('security_setting.setup_is_not_yet_complete')}} {t('security_setting.callback_URL')} {t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })} {!adminGeneralSecurityContainer.state.appSiteUrl && ( ${t('App Settings')}` }) }} /> )} {isOidcEnabled && ( {t('security_setting.configuration')} {t('security_setting.providerName')} adminOidcSecurityContainer.changeOidcProviderName(e.target.value)} /> {t('security_setting.issuerHost')} adminOidcSecurityContainer.changeOidcIssuerHost(e.target.value)} /> {t('security_setting.clientID')} adminOidcSecurityContainer.changeOidcClientId(e.target.value)} /> {t('security_setting.client_secret')} adminOidcSecurityContainer.changeOidcClientSecret(e.target.value)} /> {t('security_setting.authorization_endpoint')} adminOidcSecurityContainer.changeOidcAuthorizationEndpoint(e.target.value)} /> {t('security_setting.token_endpoint')} adminOidcSecurityContainer.changeOidcTokenEndpoint(e.target.value)} /> {t('security_setting.revocation_endpoint')} adminOidcSecurityContainer.changeOidcRevocationEndpoint(e.target.value)} /> {t('security_setting.introspection_endpoint')} adminOidcSecurityContainer.changeOidcIntrospectionEndpoint(e.target.value)} /> {t('security_setting.userinfo_endpoint')} adminOidcSecurityContainer.changeOidcUserInfoEndpoint(e.target.value)} /> {t('security_setting.end_session_endpoint')} adminOidcSecurityContainer.changeOidcEndSessionEndpoint(e.target.value)} /> {t('security_setting.registration_endpoint')} adminOidcSecurityContainer.changeOidcRegistrationEndpoint(e.target.value)} /> {t('security_setting.jwks_uri')} adminOidcSecurityContainer.changeOidcJWKSUri(e.target.value)} /> Attribute Mapping ({t('security_setting.optional')}) Identifier adminOidcSecurityContainer.changeOidcAttrMapId(e.target.value)} /> {t('username')} adminOidcSecurityContainer.changeOidcAttrMapUserName(e.target.value)} /> {t('Name')} adminOidcSecurityContainer.changeOidcAttrMapName(e.target.value)} /> {t('Email')} adminOidcSecurityContainer.changeOidcAttrMapEmail(e.target.value)} /> {t('security_setting.callback_URL')} {t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })} {!adminGeneralSecurityContainer.state.appSiteUrl && ( ${t('App Settings')}` }) }} /> )} { adminOidcSecurityContainer.switchIsSameUsernameTreatedAsIdenticalUser() }} /> { adminOidcSecurityContainer.switchIsSameEmailTreatedAsIdenticalUser() }} /> {t('Update')} )} {t('security_setting.OAuth.how_to.oidc')} {t('security_setting.OAuth.OIDC.register_1')} {t('security_setting.OAuth.OIDC.register_2')} {t('security_setting.OAuth.OIDC.register_3')} ); } } OidcSecurityManagementContents.propTypes = { t: PropTypes.func.isRequired, // i18next adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired, adminOidcSecurityContainer: PropTypes.instanceOf(AdminOidcSecurityContainer).isRequired, }; const OidcSecurityManagementContentsWrapperFC = (props) => { const { t } = useTranslation(); return ; }; const OidcSecurityManagementContentsWrapper = withUnstatedContainers(OidcSecurityManagementContentsWrapperFC, [ AdminGeneralSecurityContainer, AdminOidcSecurityContainer, ]); export default OidcSecurityManagementContentsWrapper;
{t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })}