Yuki Takei 6 лет назад
Родитель
Сommit
99cd95676f

+ 1 - 1
src/server/models/config.js

@@ -188,7 +188,7 @@ module.exports = function(crowi) {
         NO_CDN: env.NO_CDN || null,
       },
       recentCreatedLimit: crowi.configManager.getConfig('crowi', 'customize:showRecentCreatedNumber'),
-      isAclEnabled: !crowi.aclService.getIsPublicWikiOnly(),
+      isAclEnabled: crowi.aclService.isAclEnabled(),
       globalLang: crowi.configManager.getConfig('crowi', 'app:globalLang'),
     };
 

+ 2 - 2
src/server/routes/admin.js

@@ -624,7 +624,7 @@ module.exports = function(crowi, app) {
   actions.userGroup = {};
   actions.userGroup.index = function(req, res) {
     const page = parseInt(req.query.page) || 1;
-    const isAclEnabled = !aclService.getIsPublicWikiOnly();
+    const isAclEnabled = aclService.isAclEnabled();
     const renderVar = {
       userGroups: [],
       userGroupRelations: new Map(),
@@ -889,7 +889,7 @@ module.exports = function(crowi, app) {
     }
 
     const form = req.form.settingForm;
-    if (aclService.getIsPublicWikiOnly()) {
+    if (!aclService.isAclEnabled()) {
       const guestMode = form['security:restrictGuestMode'];
       if (guestMode === 'Deny') {
         req.form.errors.push('Private Wikiへの設定変更はできません。');

+ 8 - 4
src/server/service/acl.js

@@ -16,14 +16,18 @@ class AclService {
     };
   }
 
-  getIsPublicWikiOnly() {
-    const publicWikiOnly = process.env.PUBLIC_WIKI_ONLY;
-    return !!publicWikiOnly;
+  isAclEnabled() {
+    const isPublicWikiOnly = this.configManager.getConfig('crowi', 'security:isPublicWikiOnly');
+    // const isPrivateWikiOnly = this.configManager.getConfig('crowi', 'security:isPrivateWikiOnly');
+
+    return !(isPublicWikiOnly);
   }
 
   getIsGuestAllowedToRead() {
+    const isPublicWikiOnly = this.configManager.getConfig('crowi', 'security:isPublicWikiOnly');
+
     // return true if puclic wiki mode
-    if (this.getIsPublicWikiOnly()) {
+    if (isPublicWikiOnly) {
       return true;
     }
 

+ 6 - 0
src/server/service/config-loader.js

@@ -134,6 +134,12 @@ const ENV_VAR_NAME_TO_CONFIG_INFO = {
     type:    TYPES.NUMBER,
     default: Infinity,
   },
+  PUBLIC_WIKI_ONLY: {
+    ns:      'crowi',
+    key:     'security:isPublicWikiOnly',
+    type:    TYPES.BOOLEAN,
+    default: false,
+  },
   SAML_USES_ONLY_ENV_VARS_FOR_SOME_OPTIONS: {
     ns:      'crowi',
     key:     'security:passport-saml:useOnlyEnvVarsForSomeOptions',