itizawa 6 лет назад
Родитель
Сommit
03fc3c4999

+ 3 - 0
src/client/js/app.jsx

@@ -63,6 +63,7 @@ import AdminExternalAccountsContainer from './services/AdminExternalAccountsCont
 import AdminSamlSecurityContainer from './services/AdminSamlSecurityContainer';
 import AdminSamlSecurityContainer from './services/AdminSamlSecurityContainer';
 import AdminOidcSecurityContainer from './services/AdminOidcSecurityContainer';
 import AdminOidcSecurityContainer from './services/AdminOidcSecurityContainer';
 import AdminBasicSecurityContainer from './services/AdminBasicSecurityContainer';
 import AdminBasicSecurityContainer from './services/AdminBasicSecurityContainer';
+import AdminGoogleSecurityContainer from './services/AdminGoogleSecurityContainer';
 
 
 const logger = loggerFactory('growi:app');
 const logger = loggerFactory('growi:app');
 
 
@@ -223,8 +224,10 @@ if (adminSecuritySettingElem != null) {
   const adminSamlSecurityContainer = new AdminSamlSecurityContainer(appContainer);
   const adminSamlSecurityContainer = new AdminSamlSecurityContainer(appContainer);
   const adminOidcSecurityContainer = new AdminOidcSecurityContainer(appContainer);
   const adminOidcSecurityContainer = new AdminOidcSecurityContainer(appContainer);
   const adminBasicSecurityContainer = new AdminBasicSecurityContainer(appContainer);
   const adminBasicSecurityContainer = new AdminBasicSecurityContainer(appContainer);
+  const adminGoogleSecurityContainer = new AdminGoogleSecurityContainer(appContainer);
   const adminSecurityContainers = [
   const adminSecurityContainers = [
     adminGeneralSecurityContainer, adminLdapSecurityContainer, adminSamlSecurityContainer, adminOidcSecurityContainer, adminBasicSecurityContainer,
     adminGeneralSecurityContainer, adminLdapSecurityContainer, adminSamlSecurityContainer, adminOidcSecurityContainer, adminBasicSecurityContainer,
+    adminGoogleSecurityContainer,
   ];
   ];
   ReactDOM.render(
   ReactDOM.render(
     <Provider inject={[injectableContainers, adminSecurityContainers]}>
     <Provider inject={[injectableContainers, adminSecurityContainers]}>

+ 5 - 3
src/client/js/components/Admin/Security/GoogleSecuritySetting.jsx

@@ -7,11 +7,12 @@ import { createSubscribedElement } from '../../UnstatedUtils';
 
 
 import AppContainer from '../../../services/AppContainer';
 import AppContainer from '../../../services/AppContainer';
 import AdminGeneralSecurityContainer from '../../../services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '../../../services/AdminGeneralSecurityContainer';
+import AdminGoogleSecurityContainer from '../../../services/AdminGoogleSecurityContainer';
 
 
 class GoogleSecurityManagement extends React.Component {
 class GoogleSecurityManagement extends React.Component {
 
 
   render() {
   render() {
-    const { t, adminGeneralSecurityContainer } = this.props;
+    const { t, adminGeneralSecurityContainer, adminGoogleSecurityContainer } = this.props;
     return (
     return (
 
 
       <React.Fragment>
       <React.Fragment>
@@ -39,7 +40,7 @@ class GoogleSecurityManagement extends React.Component {
 
 
         {adminGeneralSecurityContainer.state.isGoogleOAuthEnabled && (
         {adminGeneralSecurityContainer.state.isGoogleOAuthEnabled && (
           // TODO
           // TODO
-          <p>option</p>
+          <p>{adminGoogleSecurityContainer.state.hoge}</p>
         )}
         )}
 
 
       </React.Fragment>
       </React.Fragment>
@@ -55,10 +56,11 @@ GoogleSecurityManagement.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
   adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired,
   adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired,
+  adminGoogleSecurityContainer: PropTypes.instanceOf(AdminGoogleSecurityContainer).isRequired,
 };
 };
 
 
 const GoogleSecurityManagementWrapper = (props) => {
 const GoogleSecurityManagementWrapper = (props) => {
-  return createSubscribedElement(GoogleSecurityManagement, props, [AppContainer, AdminGeneralSecurityContainer]);
+  return createSubscribedElement(GoogleSecurityManagement, props, [AppContainer, AdminGeneralSecurityContainer, AdminGoogleSecurityContainer]);
 };
 };
 
 
 export default withTranslation()(GoogleSecurityManagementWrapper);
 export default withTranslation()(GoogleSecurityManagementWrapper);

+ 39 - 0
src/client/js/services/AdminGoogleSecurityContainer.js

@@ -0,0 +1,39 @@
+import { Container } from 'unstated';
+
+import loggerFactory from '@alias/logger';
+
+// eslint-disable-next-line no-unused-vars
+const logger = loggerFactory('growi:security:AdminGoogleSecurityContainer');
+
+/**
+ * Service container for admin security page (GoogleSecurityManagement.jsx)
+ * @extends {Container} unstated Container
+ */
+export default class AdminGoogleSecurityContainer extends Container {
+
+  constructor(appContainer) {
+    super();
+
+    this.appContainer = appContainer;
+
+    this.state = {
+      // TODO GW-583 set value
+      hoge: 'google',
+    };
+
+    this.init();
+
+  }
+
+  init() {
+    // TODO GW-583 fetch config value with api
+  }
+
+  /**
+   * Workaround for the mangling in production build to break constructor.name
+   */
+  static getClassName() {
+    return 'AdminGoogleSecurityContainer';
+  }
+
+}