Browse Source

get all groups from api

mizozobu 7 years ago
parent
commit
f330406f9d

+ 2 - 2
src/client/js/app.js

@@ -44,7 +44,7 @@ import CustomCssEditor from './components/Admin/CustomCssEditor';
 import CustomScriptEditor from './components/Admin/CustomScriptEditor';
 import CustomHeaderEditor from './components/Admin/CustomHeaderEditor';
 import AdminRebuildSearch from './components/Admin/AdminRebuildSearch';
-import GroupDeleteControl from './components/GroupDeleteControl/GroupDeleteControl';
+import GroupDeleteModal from './components/GroupDeleteModal/GroupDeleteModal';
 
 
 const logger = loggerFactory('growi:app');
@@ -576,7 +576,7 @@ const adminGrantSelectorElem = document.getElementById('admin-delete-user-group-
 if (adminGrantSelectorElem != null) {
   ReactDOM.render(
     <I18nextProvider i18n={i18n}>
-      <GroupDeleteControl
+      <GroupDeleteModal
         crowi={crowi}
       />
     </I18nextProvider>,

+ 7 - 9
src/client/js/components/GroupDeleteControl/GroupDeleteControl.jsx → src/client/js/components/GroupDeleteModal/GroupDeleteModal.jsx

@@ -12,7 +12,7 @@ import FormControl from 'react-bootstrap/es/FormControl';
  * @class GrantSelector
  * @extends {React.Component}
  */
-class GroupDeleteControl extends React.Component {
+class GroupDeleteModal extends React.Component {
 
   constructor(props) {
     super(props);
@@ -71,12 +71,10 @@ class GroupDeleteControl extends React.Component {
   }
 
   async retrieveUserGroupRelations() {
-    const res = await this.props.crowi.apiGet('/me/user-group-relations'); // FIXME
-    this.setState({
-      groups: res.userGroupRelations.map((relation) => {
-        return relation.relatedGroup;
-      }),
-    });
+    const res = await this.props.crowi.apiGet('/admin/user-groups');
+    if (res.ok) {
+      this.setState({ groups: res.userGroups });
+    }
   }
 
   changeActionHandler(e) {
@@ -182,9 +180,9 @@ class GroupDeleteControl extends React.Component {
 
 }
 
-GroupDeleteControl.propTypes = {
+GroupDeleteModal.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   crowi: PropTypes.object.isRequired,
 };
 
-export default withTranslation()(GroupDeleteControl);
+export default withTranslation()(GroupDeleteModal);

+ 11 - 0
src/server/routes/admin.js

@@ -1327,6 +1327,17 @@ module.exports = function(crowi, app) {
     return res.json(ApiResponse.success());
   };
 
+  actions.api.userGroups = async(req, res) => {
+    try {
+      const userGroups = await UserGroup.find();
+      return res.json(ApiResponse.success({ userGroups }));
+    }
+    catch (err) {
+      logger.error('Error', err);
+      return res.json(ApiResponse.error('Error'));
+    }
+  };
+
   /**
    * save settings, update config cache, and response json
    *

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

@@ -143,6 +143,7 @@ module.exports = function(crowi, app) {
   app.post('/admin/user-group/create'      , form.admin.userGroupCreate, loginRequired(crowi, app), middleware.adminRequired(), csrf, admin.userGroup.create);
   app.post('/admin/user-group/:userGroupId/update', loginRequired(crowi, app), middleware.adminRequired(), csrf, admin.userGroup.update);
   app.post('/admin/user-group.remove' , loginRequired(crowi, app), middleware.adminRequired(), csrf, admin.userGroup.removeCompletely);
+  app.get('/_api/admin/user-groups', loginRequired(crowi, app), middleware.adminRequired(), admin.api.userGroups);
 
   // user-group-relations admin
   app.post('/admin/user-group-relation/create', loginRequired(crowi, app), middleware.adminRequired(), csrf, admin.userGroupRelation.create);