Browse Source

GW-6410 Added update(put) share link settings methods & Added blueprint comments

hakumizuki 4 years ago
parent
commit
744c984f19

+ 53 - 0
src/client/js/components/Admin/Security/ShareLinkSetting.jsx

@@ -67,6 +67,17 @@ class ShareLinkSetting extends React.Component {
 
 
   }
   }
 
 
+  async putShareLinkSettings() {
+    const { t, adminGeneralSecurityContainer } = this.props;
+    try {
+      await adminGeneralSecurityContainer.updateGeneralSecuritySetting();
+      toastSuccess(t('security_setting.updated_shareLink_setting'));
+    }
+    catch (err) {
+      toastError(err);
+    }
+  }
+
   showDeleteConfirmModal() {
   showDeleteConfirmModal() {
     this.setState({ isDeleteConfirmModalShown: true });
     this.setState({ isDeleteConfirmModalShown: true });
   }
   }
@@ -125,6 +136,39 @@ class ShareLinkSetting extends React.Component {
           </button>
           </button>
           <h2 className="alert-anchor border-bottom">{t('share_links.share_link_management')}</h2>
           <h2 className="alert-anchor border-bottom">{t('share_links.share_link_management')}</h2>
         </div>
         </div>
+        {/* ここにShareLink Settingのdropdown button */}
+        {/* <h4>{t('security_setting.page_access_and_delete_rights')}</h4>
+        <div className="row mb-4">
+          <div className="col-md-3 text-md-right py-2">
+            <strong>{t('security_setting.Guest Users Access')}</strong>
+          </div>
+          <div className="col-md-9">
+            <div className="dropdown">
+              <button
+                className={`btn btn-outline-secondary dropdown-toggle text-right col-12
+                            col-md-auto ${adminGeneralSecurityContainer.isWikiModeForced && 'disabled'}`}
+                type="button"
+                id="dropdownMenuButton"
+                data-toggle="dropdown"
+                aria-haspopup="true"
+                aria-expanded="true"
+              >
+                <span className="float-left">
+                  {currentRestrictGuestMode === 'Deny' && t('security_setting.guest_mode.deny')}
+                  {currentRestrictGuestMode === 'Readonly' && t('security_setting.guest_mode.readonly')}
+                </span>
+              </button>
+              <div className="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                <button className="dropdown-item" type="button" onClick={() => { adminGeneralSecurityContainer.changeRestrictGuestMode('Deny') }}>
+                  {t('security_setting.guest_mode.deny')}
+                </button>
+                <button className="dropdown-item" type="button" onClick={() => { adminGeneralSecurityContainer.changeRestrictGuestMode('Readonly') }}>
+                  {t('security_setting.guest_mode.readonly')}
+                </button>
+              </div>
+            </div>
+          </div>
+        </div> */}
         <Pager
         <Pager
           links={shareLinks}
           links={shareLinks}
           activePage={shareLinksActivePage}
           activePage={shareLinksActivePage}
@@ -144,6 +188,15 @@ class ShareLinkSetting extends React.Component {
           )
           )
         }
         }
 
 
+        {/* ここにUpdate button */}
+        {/* <div className="row my-3">
+          <div className="text-center text-md-left offset-md-3 col-md-5">
+            <button type="button" className="btn btn-primary" disabled={adminGeneralSecurityContainer.retrieveError != null} onClick={this.putShareLinkSetting}>
+              {t('Update')}
+            </button>
+          </div>
+        </div> */}
+
 
 
         <DeleteAllShareLinksModal
         <DeleteAllShareLinksModal
           isOpen={this.state.isDeleteConfirmModalShown}
           isOpen={this.state.isDeleteConfirmModalShown}

+ 17 - 0
src/client/js/services/AdminGeneralSecurityContainer.js

@@ -35,6 +35,7 @@ export default class AdminGeneralSecurityContainer extends Container {
       isGitHubEnabled: false,
       isGitHubEnabled: false,
       isTwitterEnabled: false,
       isTwitterEnabled: false,
       setupStrategies: [],
       setupStrategies: [],
+      disableLinkSharing: false,
       shareLinks: [],
       shareLinks: [],
       totalshareLinks: 0,
       totalshareLinks: 0,
       shareLinksPagingLimit: Infinity,
       shareLinksPagingLimit: Infinity,
@@ -54,6 +55,7 @@ export default class AdminGeneralSecurityContainer extends Container {
       isShowRestrictedByGroup: !generalSetting.hideRestrictedByGroup,
       isShowRestrictedByGroup: !generalSetting.hideRestrictedByGroup,
       sessionMaxAge: generalSetting.sessionMaxAge,
       sessionMaxAge: generalSetting.sessionMaxAge,
       wikiMode: generalSetting.wikiMode,
       wikiMode: generalSetting.wikiMode,
+      disableLinkSharing: generalSetting.disableLinkSharing,
       isLocalEnabled: generalAuth.isLocalEnabled,
       isLocalEnabled: generalAuth.isLocalEnabled,
       isLdapEnabled: generalAuth.isLdapEnabled,
       isLdapEnabled: generalAuth.isLdapEnabled,
       isSamlEnabled: generalAuth.isSamlEnabled,
       isSamlEnabled: generalAuth.isSamlEnabled,
@@ -137,6 +139,21 @@ export default class AdminGeneralSecurityContainer extends Container {
     return securitySettingParams;
     return securitySettingParams;
   }
   }
 
 
+  /**
+   * Update Share Link Settings
+   */
+  async updateShareLinkSetting() {
+
+    let requestParams = {
+      disableLinkSharing: this.state.disableLinkSharing,
+    };
+
+    requestParams = await removeNullPropertyFromObject(requestParams);  // 要チェック
+    const response = await this.appContainer.apiv3.put('/security-setting/general-setting', requestParams);
+    const { securitySettingParams } = response.data;
+    return securitySettingParams;
+  }
+
   /**
   /**
    * Switch authentication
    * Switch authentication
    */
    */