WESEEK Kaito 6 лет назад
Родитель
Сommit
747c855764

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

@@ -57,6 +57,7 @@ import UserGroupDetailContainer from './services/UserGroupDetailContainer';
 import AdminUsersContainer from './services/AdminUsersContainer';
 import AdminUsersContainer from './services/AdminUsersContainer';
 import WebsocketContainer from './services/WebsocketContainer';
 import WebsocketContainer from './services/WebsocketContainer';
 import MarkDownSettingContainer from './services/MarkDownSettingContainer';
 import MarkDownSettingContainer from './services/MarkDownSettingContainer';
+import AdminExternalAccountsContainer from './services/AdminExternalAccountsContainer'
 
 
 const logger = loggerFactory('growi:app');
 const logger = loggerFactory('growi:app');
 
 
@@ -174,6 +175,19 @@ if (adminUsersElem != null) {
   );
   );
 }
 }
 
 
+const adminExternalAccountsElem = document.getElementById('admin-external-account');
+if (adminExtenralAccountsElem != null) {
+  const adminExternalAccountsContainer = new AdminExternalAccountsContainer(appContainer);
+  ReactDOM.render(
+    <Provider inject={[injectableContainers, adminExternalAccountsContainer]}>
+      <I18nextProvider i18n={i18n}>
+        <ManageExternalAccount />
+      </I18nextProvider>
+    </Provider>,
+    adminExternalAccountsElem,
+  );
+}
+
 const adminUserGroupDetailElem = document.getElementById('admin-user-group-detail');
 const adminUserGroupDetailElem = document.getElementById('admin-user-group-detail');
 if (adminUserGroupDetailElem != null) {
 if (adminUserGroupDetailElem != null) {
   const userGroupDetailContainer = new UserGroupDetailContainer(appContainer);
   const userGroupDetailContainer = new UserGroupDetailContainer(appContainer);

+ 2 - 0
src/client/js/components/Admin/Users/ManageExternalAccount.jsx

@@ -11,6 +11,8 @@ class ManageExternalAccount extends React.Component {
   constructor(props) {
   constructor(props) {
     super(props);
     super(props);
 
 
+    const { appContainer } = this.props;
+    
     this.state = {
     this.state = {
     };
     };
   }
   }

+ 33 - 0
src/client/js/services/AdminExteranlAccountsContainer.js

@@ -0,0 +1,33 @@
+import { Container } from 'unstated';
+
+import loggerFactory from '@alias/logger';
+import { isThisSecond } from 'date-fns/esm';
+
+// eslint-disable-next-line no-unused-vars
+const logger = loggerFactory('growi:services:UserGroupDetailContainer');
+
+/**
+ * Service container for admin users page (Users.jsx)
+ * @extends {Container} unstated Container
+ */
+export default class AdminExternalAccountContainer extends Container {
+
+  constructor(appContainer) {
+    super();
+
+    this.appContainer = appContainer;
+
+    this.state = {
+        exteranalAccounts: JSON.parse(document.getElementById('admin-external-account-setting').getAttribute('external-account')) || [],
+    };
+
+  }
+
+  /**
+   * Workaround for the mangling in production build to break constructor.name
+   */
+  static getClassName() {
+    return 'AdminExternalAccountContainer';
+  }
+
+}

+ 1 - 1
src/server/routes/index.js

@@ -134,7 +134,7 @@ module.exports = function(crowi, app) {
   app.post('/_api/admin/users.resetPassword'  , loginRequiredStrictly , adminRequired , csrf, admin.user.resetPassword);
   app.post('/_api/admin/users.resetPassword'  , loginRequiredStrictly , adminRequired , csrf, admin.user.resetPassword);
 
 
   app.get('/admin/users/external-accounts'               , loginRequiredStrictly , adminRequired , admin.externalAccount.index);
   app.get('/admin/users/external-accounts'               , loginRequiredStrictly , adminRequired , admin.externalAccount.index);
-  app.post('/admin/users/external-accounts/:id/remove'   , loginRequiredStrictly , adminRequired , admin.externalAccount.remove);
+  app.post('/_api/admin/users/external-accounts/:id/remove'   , loginRequiredStrictly , adminRequired , admin.externalAccount.remove);
 
 
   // user-groups admin
   // user-groups admin
   app.get('/admin/user-groups'             , loginRequiredStrictly, adminRequired, admin.userGroup.index);
   app.get('/admin/user-groups'             , loginRequiredStrictly, adminRequired, admin.userGroup.index);