فهرست منبع

rewrite translation

WESEEK Kaito 6 سال پیش
والد
کامیت
29dbffd82c

+ 1 - 1
resource/locales/ja/translation.json

@@ -442,7 +442,7 @@
 
   "security_setting": {
     "Guest Users Access": "ゲストユーザーのアクセス",
-    "Fixed by env var": "環境変数 <code>%s=%s</code> により固定されています。",
+    "Fixed by env var": "環境変数 <code>{{forcewikimode}}={{wikimode}}</code> により固定されています。",
     "Register limitation": "登録の制限",
     "Register limitation desc": "新しいユーザーを登録する方法を制限します.",
     "The whitelist of registration permission E-mail address": "登録許可メールアドレスの<br>ホワイトリスト",

+ 9 - 7
src/client/js/components/Admin/Security/SecuritySetting.jsx

@@ -24,7 +24,7 @@ class SecuritySetting extends React.Component {
     const { adminGeneralSecurityContainer } = this.props;
 
     try {
-      await adminGeneralSecurityContainer.retriveSecurityData();
+      await adminGeneralSecurityContainer.retrieveSecurityData();
     }
     catch (err) {
       toastError(err);
@@ -47,7 +47,8 @@ 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') };
+    // eslint-disable-next-line max-len
+    const helpForceWikiMode = { __html: t('security_setting.Fixed by env var', { forcewikimode: 'FORCE_WIKI_MODE' }, { wikimode: adminGeneralSecurityContainer.state.wikiMode }) };
 
 
     return (
@@ -103,11 +104,12 @@ class SecuritySetting extends React.Component {
           </div>
           {adminGeneralSecurityContainer.state.isWikiModeForced && (
             <div className="row mb-5">
-              <div className="col-xs-6">
-                <p className="alert alert-warning mt-2">
-                  <i className="icon-exclamation icon-fw" dangerouslySetInnerHTML={helpForceWikiMode}>
-                  </i><b>FIXED</b>
-                  <br></br>
+              <div className="col-xs-3 text-right" />
+              <div className="col-xs-9 text-left">
+                <p className="alert alert-warning mt-2 text-left">
+                  <i className="icon-exclamation icon-fw">
+                  </i><b>FIXED</b><br />
+                  { <b dangerouslySetInnerHTML={helpForceWikiMode} /> }
                 </p>
               </div>
             </div>

+ 16 - 3
src/client/js/services/AdminGeneralSecurityContainer.js

@@ -17,8 +17,8 @@ export default class AdminGeneralSecurityContainer extends Container {
     this.appContainer = appContainer;
 
     this.state = {
-      // TODO GW-583 set value
-      isWikiModeForced: true,
+      isWikiModeForced: false,
+      wikiMode: '',
       currentRestrictGuestMode: 'deny',
       currentPageCompleteDeletionAuthority: 'anyone',
       isHideRestrictedByOwner: true,
@@ -44,16 +44,19 @@ export default class AdminGeneralSecurityContainer extends Container {
     this.switchIsHideRestrictedByGroup = this.switchIsHideRestrictedByGroup.bind(this);
     this.switchIsHideRestrictedByOwner = this.switchIsHideRestrictedByOwner.bind(this);
     this.changePageCompleteDeletionAuthority = this.changePageCompleteDeletionAuthority.bind(this);
+    this.onIsWikiModeForced = this.onIsWikiModeForced.bind(this);
   }
 
-  async retriveSecurityData() {
+  async retrieveSecurityData() {
     const response = await this.appContainer.apiv3.get('/security-setting/');
     const { generalSetting } = response.data.securityParams;
+    this.onIsWikiModeForced(generalSetting.wikiMode);
     this.setState({
       currentRestrictGuestMode: generalSetting.restrictGuestMode || 'deny',
       currentPageCompleteDeletionAuthority: generalSetting.pageCompleteDeletionAuthority || 'anyone',
       isHideRestrictedByOwner: generalSetting.hideRestrictedByOwner || false,
       isHideRestrictedByGroup: generalSetting.hideRestrictedByGroup || false,
+      wikiMode: generalSetting.wikiMode || '',
     });
   }
 
@@ -93,6 +96,15 @@ export default class AdminGeneralSecurityContainer extends Container {
     this.setState({ isHideRestrictedByGroup:  !this.state.isHideRestrictedByGroup });
   }
 
+  onIsWikiModeForced() {
+    if (this.state.wikiMode === 'private') {
+      this.setState({ isWikiModeForced: true });
+    }
+    else {
+      this.setState({ isWikiModeForced: false });
+    }
+  }
+
 
   /**
    * Update restrictGuestMode
@@ -105,6 +117,7 @@ export default class AdminGeneralSecurityContainer extends Container {
       pageCompleteDeletionAuthority: this.state.currentPageCompleteDeletionAuthority,
       hideRestrictedByGroup: this.state.isHideRestrictedByGroup,
       hideRestrictedByOwner: this.state.isHideRestrictedByOwner,
+      wikiMode: this.state.wikiMode,
     });
     const { securitySettingParams } = response.data;
     return securitySettingParams;

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

@@ -18,6 +18,7 @@ const validator = {
     body('pageCompleteDeletionAuthority').isString(),
     body('hideRestrictedByOwner').isBoolean(),
     body('hideRestrictedByGroup').isBoolean(),
+    body('wikiMode').isString(),
   ],
   githubOAuth: [
     body('githubClientId').isString(),
@@ -59,6 +60,12 @@ const validator = {
  *                  pageCompleteDeletionAuthority:
  *                    type: string
  *                    description: type of pageDeletionAuthority
+ *              WikiModeParams:
+ *                type: object
+ *                properties:
+ *                  wikiMode:
+ *                    type: string
+ *                    description: type of wikiMode
  *              Function:
  *                type: object
  *                properties:
@@ -137,6 +144,7 @@ module.exports = (crowi) => {
         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'),
+        wikiMode: await crowi.configManager.getConfig('crowi', 'security:wikiMode'),
       },
     };
 
@@ -185,6 +193,7 @@ module.exports = (crowi) => {
       'security:pageCompleteDeletionAuthority': req.body.pageCompleteDeletionAuthority,
       'security:list-policy:hideRestrictedByOwner': req.body.hideRestrictedByOwner,
       'security:list-policy:hideRestrictedByGroup': req.body.hideRestrictedByGroup,
+      'security:wikiMode': req.body.wikiMode,
     };
 
     try {
@@ -194,6 +203,7 @@ module.exports = (crowi) => {
         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'),
+        wikiMode: await crowi.configManager.getConfig('crowi', 'security:wikiMode'),
       };
       return res.apiv3({ securitySettingParams });
     }