Przeglądaj źródła

add a form to select the option 'security:restrictGuestMode'

Yuki Takei 8 lat temu
rodzic
commit
94fc49cba4

+ 1 - 0
lib/crowi/express-init.js

@@ -71,6 +71,7 @@ module.exports = function(crowi, app) {
         pageGrants: Page.getGrantLabels(),
         userStatus: User.getUserStatusLabels(),
         language:   User.getLanguageLabels(),
+        restrictGuestMode: Config.getRestrictGuestModeLabels(),
         registrationMode: Config.getRegistrationModeLabels(),
     };
     res.locals.local_config = Config.getLocalconfig(config); // config for browser context

+ 1 - 0
lib/form/admin/sec.js

@@ -9,6 +9,7 @@ var form = require('express-form')
 module.exports = form(
   field('settingForm[security:basicName]'),
   field('settingForm[security:basicSecret]'),
+  field('settingForm[security:restrictGuestMode]').required(),
   field('settingForm[security:registrationMode]').required(),
   field('settingForm[security:registrationWhiteList]').custom(normalizeCRLF).custom(stringToArray)
 );

+ 14 - 0
lib/models/config.js

@@ -6,6 +6,9 @@ module.exports = function(crowi) {
     , configSchema
     , Config
 
+    , SECURITY_RESTRICT_GUEST_MODE_DENY = 'Deny'
+    , SECURITY_RESTRICT_GUEST_MODE_READONLY = 'Readonly'
+
     , SECURITY_REGISTRATION_MODE_OPEN = 'Open'
     , SECURITY_REGISTRATION_MODE_RESTRICTED = 'Resricted'
     , SECURITY_REGISTRATION_MODE_CLOSED = 'Closed'
@@ -26,6 +29,8 @@ module.exports = function(crowi) {
 
       'app:fileUpload'    : false,
 
+      'security:restrictGuestMode'      : 'Deny',
+
       'security:registrationMode'      : 'Open',
       'security:registrationWhiteList' : [],
 
@@ -57,6 +62,15 @@ module.exports = function(crowi) {
     }
   }
 
+  configSchema.statics.getRestrictGuestModeLabels = function()
+  {
+    var labels = {};
+    labels[SECURITY_RESTRICT_GUEST_MODE_DENY]     = 'アカウントを持たないユーザーはアクセス不可';
+    labels[SECURITY_RESTRICT_GUEST_MODE_READONLY] = '閲覧のみ許可';
+
+    return labels;
+  };
+
   configSchema.statics.getRegistrationModeLabels = function()
   {
     var labels = {};

+ 11 - 0
lib/views/admin/app.html

@@ -103,6 +103,17 @@
           </div>
         </div>
 
+        <div class="form-group">
+          <label for="settingForm[security:restrictGuestMode]" class="col-xs-3 control-label">ゲストユーザーのアクセス</label>
+          <div class="col-xs-6">
+            <select class="form-control" name="settingForm[security:restrictGuestMode]" value="{{ settingForm['security:restrictGuestMode'] }}">
+              {% for modeValue, modeLabel in consts.restrictGuestMode %}
+              <option value="{{ modeValue }}" {% if modeValue == settingForm['security:restrictGuestMode'] %}selected{% endif %} >{{ modeLabel }}</option>
+              {% endfor %}
+            </select>
+          </div>
+        </div>
+
         <div class="form-group">
           <label for="settingForm[security:registrationMode]" class="col-xs-3 control-label">登録の制限</label>
           <div class="col-xs-6">