Kaynağa Gözat

set data from api

WESEEK Kaito 6 yıl önce
ebeveyn
işleme
7db98bd338

+ 25 - 2
src/client/js/components/Admin/Security/SecuritySetting.jsx

@@ -14,9 +14,24 @@ class SecuritySetting extends React.Component {
   constructor(props) {
     super(props);
 
+    this.state = {
+      retrieveError: null,
+    };
     this.putSecuritySetting = this.putSecuritySetting.bind(this);
   }
 
+  async componentDidMount() {
+    const { adminGeneralSecurityContainer } = this.props;
+
+    try {
+      await adminGeneralSecurityContainer.retriveSecurityData();
+    }
+    catch (err) {
+      toastError(err);
+      this.setState({ retrieveError: err });
+    }
+  }
+
   async putSecuritySetting() {
     const { t } = this.props;
     try {
@@ -32,10 +47,18 @@ class SecuritySetting extends React.Component {
     const { t, adminGeneralSecurityContainer } = this.props;
     const helpPageListingByOwner = { __html: t('security_setting.page_listing_1') };
     const helpPageListingByGroup = { __html: t('security_setting.page_listing_2') };
+    const helpForceWikiMode = { __html: t('security_setting.Fixed by env var', 'FORCE_WIKI_MODE') };
+
+
     return (
       <React.Fragment>
         <fieldset>
           <legend className="alert-anchor">{ t('security_settings') }</legend>
+          {this.state.retrieveError != null && (
+            <div className="alert alert-danger">
+              <p>{t('Error occurred')} : {this.state.err}</p>
+            </div>
+          )}
           {/* TODO adjust layout */}
           <div className="row mb-5">
             <strong className="col-xs-3 text-right"> { t('security_setting.Guest Users Access') } </strong>
@@ -82,9 +105,9 @@ class SecuritySetting extends React.Component {
             <div className="row mb-5">
               <div className="col-xs-6">
                 <p className="alert alert-warning mt-2">
-                  <i className="icon-exclamation icon-fw">
+                  <i className="icon-exclamation icon-fw" dangerouslySetInnerHTML={helpForceWikiMode}>
                   </i><b>FIXED</b>
-                  { t('security_setting.Fixed by env var', 'FORCE_WIKI_MODE') }<br></br>
+                  <br></br>
                 </p>
               </div>
             </div>

+ 10 - 5
src/client/js/services/AdminGeneralSecurityContainer.js

@@ -18,7 +18,7 @@ export default class AdminGeneralSecurityContainer extends Container {
 
     this.state = {
       // TODO GW-583 set value
-      isWikiModeForced: false,
+      isWikiModeForced: true,
       currentRestrictGuestMode: 'deny',
       currentPageCompleteDeletionAuthority: 'anyone',
       isHideRestrictedByOwner: true,
@@ -37,8 +37,6 @@ export default class AdminGeneralSecurityContainer extends Container {
       isTwitterOAuthEnabled: true,
     };
 
-    this.init();
-
     this.switchIsLocalEnabled = this.switchIsLocalEnabled.bind(this);
     this.changeRegistrationMode = this.changeRegistrationMode.bind(this);
     this.changeRestrictGuestMode = this.changeRestrictGuestMode.bind(this);
@@ -48,8 +46,15 @@ export default class AdminGeneralSecurityContainer extends Container {
     this.changePageCompleteDeletionAuthority = this.changePageCompleteDeletionAuthority.bind(this);
   }
 
-  init() {
-    // TODO GW-583 fetch config value with api
+  async retriveSecurityData() {
+    const response = await this.appContainer.apiv3.get('/security-setting/');
+    const { generalSetting } = response.data.securityParams;
+    this.setState({
+      currentRestrictGuestMode: generalSetting.restrictGuestMode || 'deny',
+      currentPageCompleteDeletionAuthority: generalSetting.pageCompleteDeletionAuthority || 'anyone',
+      isHideRestrictedByOwner: generalSetting.hideRestrictedByOwner || false,
+      isHideRestrictedByGroup: generalSetting.hideRestrictedByGroup || false,
+    });
   }
 
 

+ 6 - 0
src/server/routes/apiv3/security-setting.js

@@ -132,6 +132,12 @@ module.exports = (crowi) => {
         twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerSecret'),
         isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser'),
       },
+      generalSetting: {
+        restrictGuestMode: await crowi.configManager.getConfig('crowi', 'security:restrictGuestMode'),
+        pageCompleteDeletionAuthority: await crowi.configManager.getConfig('crowi', 'security:pageCompleteDeletionAuthority'),
+        hideRestrictedByOwner: await crowi.configManager.getConfig('crowi', 'security:list-policy:hideRestrictedByOwner'),
+        hideRestrictedByGroup: await crowi.configManager.getConfig('crowi', 'security:list-policy:hideRestrictedByGroup'),
+      },
     };
 
     return res.apiv3({ securityParams });