Yuki Takei 6 лет назад
Родитель
Сommit
374136277e
3 измененных файлов с 13 добавлено и 11 удалено
  1. 5 8
      src/server/routes/admin.js
  2. 6 1
      src/server/service/acl.js
  3. 2 2
      src/server/views/admin/security.html

+ 5 - 8
src/server/routes/admin.js

@@ -105,11 +105,11 @@ module.exports = function(crowi, app) {
   // app.get('/admin/security'                  , admin.security.index);
   actions.security = {};
   actions.security.index = function(req, res) {
-    const isAclEnabled = aclService.isAclEnabled();
+    const isWikiModeForced = aclService.isWikiModeForced();
     const guestModeValue = aclService.getGuestModeValue();
 
     return res.render('admin/security', {
-      isAclEnabled,
+      isWikiModeForced,
       guestModeValue,
     });
   };
@@ -895,12 +895,9 @@ module.exports = function(crowi, app) {
     }
 
     const form = req.form.settingForm;
-    if (!aclService.isAclEnabled()) {
-      const guestMode = form['security:restrictGuestMode'];
-      if (guestMode === 'Deny') {
-        req.form.errors.push('Private Wikiへの設定変更はできません。');
-        return res.json({ status: false, message: req.form.errors.join('\n') });
-      }
+    if (aclService.isWikiModeForced()) {
+      logger.debug('security:restrictGuestMode will not be changed because wiki mode is forced to set');
+      delete form['security:restrictGuestMode'];
     }
 
     try {

+ 6 - 1
src/server/service/acl.js

@@ -17,10 +17,15 @@ class AclService {
   }
 
   isAclEnabled() {
+    const wikiMode = this.configManager.getConfig('crowi', 'security:wikiMode');
+    return wikiMode !== 'public';
+  }
+
+  isWikiModeForced() {
     const wikiMode = this.configManager.getConfig('crowi', 'security:wikiMode');
     const isPrivateOrPublic = wikiMode === 'private' || wikiMode === 'public';
 
-    return !isPrivateOrPublic;
+    return isPrivateOrPublic;
   }
 
   getGuestModeValue() {

+ 2 - 2
src/server/views/admin/security.html

@@ -44,13 +44,13 @@
             <label for="settingForm[security:restrictGuestMode]" class="col-xs-3 control-label">{{ t('security_setting.Guest Users Access') }}</label>
             <div class="col-xs-6">
               {% set selectedValue = guestModeValue %}
-              <select class="form-control selectpicker" {% if !isAclEnabled %}disabled{% endif %}
+              <select class="form-control selectpicker" {% if isWikiModeForced %}disabled{% endif %}
                   name="settingForm[security:restrictGuestMode]" value="{{ getConfig('crowi', 'security:restrictGuestMode') }}">
                 {% for modeValue, modeLabel in consts.restrictGuestMode %}
                   <option value="{{ t(modeValue) }}" {% if modeValue == selectedValue %}selected{% endif %}>{{ t(modeLabel) }}</option>
                 {% endfor %}
               </select>
-              {% if !isAclEnabled %}
+              {% if isWikiModeForced %}
               <p class="alert alert-warning mt-2">
                 <i class="icon-exclamation icon-fw"></i><b>FIXED</b><br>
                 {{ t('security_setting.Fixed by env var', 'FORCE_WIKI_MODE', getConfig('crowi', 'security:wikiMode')) }}