import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { TabContent, TabPane, Nav, NavItem, NavLink, } from 'reactstrap'; import { withUnstatedContainers } from '../../UnstatedUtils'; import AppContainer from '../../../services/AppContainer'; import LdapSecuritySetting from './LdapSecuritySetting'; import LocalSecuritySetting from './LocalSecuritySetting'; import SamlSecuritySetting from './SamlSecuritySetting'; import OidcSecuritySetting from './OidcSecuritySetting'; import SecuritySetting from './SecuritySetting'; import BasicSecuritySetting from './BasicSecuritySetting'; import GoogleSecuritySetting from './GoogleSecuritySetting'; import GitHubSecuritySetting from './GitHubSecuritySetting'; import TwitterSecuritySetting from './TwitterSecuritySetting'; import FacebookSecuritySetting from './FacebookSecuritySetting'; import ShareLinkSetting from './ShareLinkSetting'; class SecurityManagementContents extends React.Component { constructor() { super(); this.state = { activeTab: 'passport-local', // Prevent unnecessary rendering activeComponents: new Set(['passport-local']), }; this.toggleActiveTab = this.toggleActiveTab.bind(this); } toggleActiveTab(activeTab) { this.setState({ activeTab, activeComponents: this.state.activeComponents.add(activeTab), }); } render() { const { t } = this.props; const { activeTab, activeComponents } = this.state; return (
{/* Shared Link List */}
{/* XSS configuration link */}

{t('security_setting.xss_prevent_setting')}

{t('security_setting.xss_prevent_setting_link')}

{t('security_setting.Authentication mechanism settings')}

{activeComponents.has('passport-local') && } {activeComponents.has('passport-ldap') && } {activeComponents.has('passport-saml') && } {activeComponents.has('passport-oidc') && } {activeComponents.has('passport-basic') && } {activeComponents.has('passport-google') && } {activeComponents.has('passport-github') && } {activeComponents.has('passport-twitter') && } {activeComponents.has('passport-facebook') && }
); } } SecurityManagementContents.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, }; const SecurityManagementContentsWrapper = withUnstatedContainers(SecurityManagementContents, [AppContainer]); export default withTranslation()(SecurityManagementContentsWrapper);