WESEEK Kaito hace 6 años
padre
commit
3cc7e4df0f

+ 92 - 2
src/client/js/services/AdminSecurityContainer.js

@@ -6,10 +6,10 @@ import loggerFactory from '@alias/logger';
 const logger = loggerFactory('growi:services:AdminSecurityContainer');
 
 /**
- * Service container for admin security page (SecurityManagement.jsx)
+ * Service container for admin security setting page (SecuritySetting.jsx)
  * @extends {Container} unstated Container
  */
-export default class AdminUsersContainer extends Container {
+export default class AdminSecurityContainer extends Container {
 
   constructor(appContainer) {
     super();
@@ -17,8 +17,98 @@ export default class AdminUsersContainer extends Container {
     this.appContainer = appContainer;
 
     this.state = {
+      // TODO GW-583 set Data from apiv3
+      currentRestrictGuestMode: appContainer.config.restrictGuestMode,
+      currentpageCompleteDeletionAuthority: appContainer.config.pageCompleteDeletionAuthority,
+      hideRestrictedByOwner: appContainer.config.hideRestrictedByOwner,
+      hideRestrictedByGroup: appContainer.config.hideRestrictedByGroup,
     };
 
+    this.init();
+
+  }
+
+  /**
+   * Workaround for the mangling in production build to break constructor.name
+   */
+  static getClassName() {
+    return 'AdminSecrityContainer';
+  }
+
+  /**
+   * retrieve security data
+   */
+  async init() {
+    // TODO GW-583 init state by apiv3
+  }
+
+
+  /**
+   * Switch restrictGuestMode
+   */
+  switchLayoutType(restrictGuestModeLabel) {
+    this.setState({ currentRestrictGuestMode: restrictGuestModeLabel });
+  }
+
+  /**
+   * Switch pageCompleteDeletionAuthority
+   */
+  switchThemeType(pageCompleteDeletionAuthorityLabel) {
+    this.setState({ currentpageCompleteDeletionAuthority: pageCompleteDeletionAuthorityLabel });
+  }
+
+  /**
+   * Switch hideRestrictedByOwner
+   */
+  switchHideRestrictedByOwner() {
+    this.setState({ hideRestrictedByOwner:  !this.state.hideRestrictedByOwner });
+  }
+
+  /**
+   * Switch hideRestrictedByGroup
+   */
+  switchHideRestrictedByGroup() {
+    this.setState({ hideRestrictedByGroup:  !this.state.hideRestrictedByGroup });
+  }
+
+  /**
+   * Update restrictGuestMode
+   * @memberOf AdminSecurityContainer
+   * @return {string} Appearance
+   */
+  async updateRestrictGuestMode() {
+    const response = await this.appContainer.apiv3.put('/security-setting/guestMode', {
+      restrictGuestMode: this.state.currentRestrictGuestMode,
+    });
+    const { securitySettingParams } = response.data;
+    return securitySettingParams;
+  }
+
+  /**
+   * Update pageDeletion
+   * @memberOf AdminSecurityContainer
+   * @return {string} Behavior
+   */
+  async updatePageCompleteDeletionAuthority() {
+    const response = await this.appContainer.apiv3.put('/security-setting/pageDeletion', {
+      pageCompleteDeletionAuthority: this.state.currentPageCompleteDeletionAuthority,
+    });
+    const { securitySettingParams } = response.data;
+    return securitySettingParams;
+  }
+
+  /**
+   * Update function
+   * @memberOf AdminSecucityContainer
+   * @return {string} Functions
+   */
+  async updateSecurityFunction() {
+    const response = await this.appContainer.apiv3.put('/security-setting/function', {
+      hideRestrictedByGroup: this.state.hideRestrictedByGroup,
+      hideRestrictedByOwner: this.state.hideRestrictedByOwner,
+    });
+    const { securitySettingParams } = response.data;
+    return securitySettingParams;
   }
 
 }

+ 7 - 7
src/server/routes/apiv3/security-setting.js

@@ -66,10 +66,10 @@ module.exports = (crowi) => {
 
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
-      const guestModeParams = {
+      const securitySettingParams = {
         restrictGuestMode: await crowi.configManager.getConfig('crowi', 'security:restrictGuestMode'),
       };
-      return res.apiv3({ guestModeParams });
+      return res.apiv3({ securitySettingParams });
     }
     catch (err) {
       const msg = 'Error occurred in updating layout and theme';
@@ -106,10 +106,10 @@ module.exports = (crowi) => {
 
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
-      const pageDeletionParams = {
-        behaviorType: await crowi.configManager.getConfig('crowi', 'customize:behavior'),
+      const securitySettingParams = {
+        pageCompleteDeletionAuthority: await crowi.configManager.getConfig('crowi', 'security:pageCompleteDeletionAuthority'),
       };
-      return res.apiv3({ pageDeletionParams });
+      return res.apiv3({ securitySettingParams });
     }
     catch (err) {
       const msg = 'Error occurred in updating page-deletion-setting';
@@ -150,11 +150,11 @@ module.exports = (crowi) => {
 
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
-      const listPolicyParams = {
+      const securitySettingParams = {
         hideRestrictedByOwner: await crowi.configManager.getConfig('crowi', 'security:list-policy:hideRestrictedByOwner'),
         hideRestrictedByGroup: await crowi.configManager.getConfig('crowi', 'customize:security:list-policy:hideRestrictedByGroup'),
       };
-      return res.apiv3({ listPolicyParams });
+      return res.apiv3({ securitySettingParams });
     }
     catch (err) {
       const msg = 'Error occurred in updating function';