diff options
Diffstat (limited to 'modules-available')
-rw-r--r-- | modules-available/dozmod/lang/de/template-tags.json | 3 | ||||
-rw-r--r-- | modules-available/dozmod/lang/en/template-tags.json | 3 | ||||
-rw-r--r-- | modules-available/dozmod/page.inc.php | 49 | ||||
-rw-r--r-- | modules-available/dozmod/templates/runtimeconfig.html | 35 |
4 files changed, 49 insertions, 41 deletions
diff --git a/modules-available/dozmod/lang/de/template-tags.json b/modules-available/dozmod/lang/de/template-tags.json index a7a91e11..b980e011 100644 --- a/modules-available/dozmod/lang/de/template-tags.json +++ b/modules-available/dozmod/lang/de/template-tags.json @@ -1,5 +1,7 @@ { "lang_actionTarget": "Aktionsziel", + "lang_allowLoginByDefault": "Login standardm\u00e4\u00dfig erlauben", + "lang_allowLoginDescription": "Wenn diese Option aktiviert ist, k\u00f6nnen sich alle Mitarbeiter der Einrichtung \u00fcber die bwLehrpool-Suite anmelden und VMs\/Veranstaltungen verwalten. Wenn Sie diese Option deaktivieren, m\u00fcssen Sie in der Untersektion \"Benutzer und Berechtigungen\" jeden Benutzer nach dem ersten Loginversuch manuell freischalten.", "lang_asteriskRequired": "Felder mit (*) sind erforderlich", "lang_blockCount": "Anzahl Bl\u00f6cke", "lang_canLogin": "Nutzer dieser Einrichtung k\u00f6nnen sich am Satelliten anmelden", @@ -42,6 +44,7 @@ "lang_maxImageValidity": "G\u00fcltigkeitsdauer neuer VM-Versionen (Tage)", "lang_maxLectureVisibility": "Sp\u00e4testes Enddatum einer Veranstaltung (Tage in der Zukunft)", "lang_maxTransfers": "Maximale Zahl gleichzeitiger Up-\/Downloads pro Benutzer", + "lang_miscOptions": "Verschiedene Einstellungen", "lang_name": "Name", "lang_organization": "Einrichtung", "lang_organizationList": "Liste der Einrichtungen", diff --git a/modules-available/dozmod/lang/en/template-tags.json b/modules-available/dozmod/lang/en/template-tags.json index 6e1a3996..0dfd1825 100644 --- a/modules-available/dozmod/lang/en/template-tags.json +++ b/modules-available/dozmod/lang/en/template-tags.json @@ -1,5 +1,7 @@ { "lang_actionTarget": "Action target", + "lang_allowLoginByDefault": "Allow all staff members to login and use the bwLehrpool-Suite", + "lang_allowLoginDescription": "If this option is enabled, all members of the organization marked as staff or employee are allowed to login to this server and manage VMs\/courses. Otherwise, new users need to be individually allowed access after their first login attempt by visiting the sub page \"users and permissions\" in this web interface.", "lang_asteriskRequired": "Fields marked with (*) are required", "lang_blockCount": "Block count", "lang_canLogin": "Members of this organization can login", @@ -42,6 +44,7 @@ "lang_maxImageValidity": "New VM validity (days)", "lang_maxLectureVisibility": "Max time lecture end date may lie in the future (days)", "lang_maxTransfers": "Max concurrent transfers per user", + "lang_miscOptions": "Misc options", "lang_name": "Name", "lang_organization": "Organization", "lang_organizationList": "List of organizations", diff --git a/modules-available/dozmod/page.inc.php b/modules-available/dozmod/page.inc.php index 6c0c8a6b..7f1e6ee3 100644 --- a/modules-available/dozmod/page.inc.php +++ b/modules-available/dozmod/page.inc.php @@ -89,29 +89,32 @@ class Page_DozMod extends Page if ($section === 'runtimeconfig') { // Runtime config $runtimeConf = Database::queryFirst('SELECT value FROM sat.configuration WHERE parameter = :param', array('param' => 'runtimelimits')); - if ($runtimeConf != null) { + if ($runtimeConf !== false) { $runtimeConf = json_decode($runtimeConf['value'], true); /* convert some value to corresponding "selected" texts */ if ($runtimeConf['defaultLecturePermissions']['edit']) { - $runtimeConf['defaultLecturePermissions']['edit'] = 'checked="checked"'; + $runtimeConf['defaultLecturePermissions']['edit'] = 'checked'; } if ($runtimeConf['defaultLecturePermissions']['admin']) { - $runtimeConf['defaultLecturePermissions']['admin'] = 'checked="checked"'; + $runtimeConf['defaultLecturePermissions']['admin'] = 'checked'; } if ($runtimeConf['defaultImagePermissions']['edit']) { - $runtimeConf['defaultImagePermissions']['edit'] = 'checked="checked"'; + $runtimeConf['defaultImagePermissions']['edit'] = 'checked'; } if ($runtimeConf['defaultImagePermissions']['admin']) { - $runtimeConf['defaultImagePermissions']['admin'] = 'checked="checked"'; + $runtimeConf['defaultImagePermissions']['admin'] = 'checked'; } if ($runtimeConf['defaultImagePermissions']['link']) { - $runtimeConf['defaultImagePermissions']['link'] = 'checked="checked"'; + $runtimeConf['defaultImagePermissions']['link'] = 'checked'; } if ($runtimeConf['defaultImagePermissions']['download']) { - $runtimeConf['defaultImagePermissions']['download'] = 'checked="checked"'; + $runtimeConf['defaultImagePermissions']['download'] = 'checked'; } + if ($runtimeConf['allowLoginByDefault']) { + $runtimeConf['allowLoginByDefault'] = 'checked'; + } } Render::addTemplate('runtimeconfig', $runtimeConf); } @@ -310,14 +313,29 @@ class Page_DozMod extends Page $data['defaultLecturePermissions'] = Request::post('defaultLecturePermissions', NULL, "array"); $data['defaultImagePermissions'] = Request::post('defaultImagePermissions', NULL, "array"); - $intParams = [ - 'maxImageValidityDays' => array('min' => 7, 'max' => 999), - 'maxLectureValidityDays' => array('min' => 7, 'max' => 999), - 'maxTransfers' => array('min' => 1, 'max' => 10), + $params = [ + 'int' => [ + 'maxImageValidityDays' => array('min' => 7, 'max' => 999), + 'maxLectureValidityDays' => array('min' => 7, 'max' => 999), + 'maxTransfers' => array('min' => 1, 'max' => 10), + ], + 'bool' => [ + 'allowLoginByDefault' => array('default' => true) + ], ]; - foreach($intParams as $field => $limits) { - $value = Request::post($field, 0, 'int'); - $data[$field] = max(min($value, $limits['max']), $limits['min']); + foreach ($params as $type => $list) { + foreach ($list as $field => $limits) { + $default = isset($limits['default']) ? $limits['default'] : false; + $value = Request::post($field, $default); + settype($value, $type); + if (isset($limits['min']) && $value < $limits['min']) { + $value = $limits['min']; + } + if (isset($limits['max']) && $value > $limits['max']) { + $value = $limits['max']; + } + $data[$field] = $value; + } } /* ensure types */ @@ -327,9 +345,6 @@ class Page_DozMod extends Page settype($data['defaultImagePermissions']['admin'], 'boolean'); settype($data['defaultImagePermissions']['link'], 'boolean'); settype($data['defaultImagePermissions']['download'], 'boolean'); - settype($data['maxImageValidityDays'], 'int'); - settype($data['maxLectureValidityDays'], 'int'); - settype($data['maxTransfers'], 'int'); $data = json_encode($data); Database::exec('INSERT INTO sat.configuration (parameter, value)' diff --git a/modules-available/dozmod/templates/runtimeconfig.html b/modules-available/dozmod/templates/runtimeconfig.html index e538dee8..9bdc44b0 100644 --- a/modules-available/dozmod/templates/runtimeconfig.html +++ b/modules-available/dozmod/templates/runtimeconfig.html @@ -91,6 +91,17 @@ </table> </fieldset> + <fieldset> + <h3>{{lang_miscOptions}}</h3> + <div class="checkbox"> + <input type="hidden" name="allowLoginByDefault" value="0"> + <input type="checkbox" name="allowLoginByDefault" value="1" {{allowLoginByDefault}} id ="allowLoginByDefault" class="form-control"> + <label> + {{lang_allowLoginByDefault}} + </label> + <p><i>{{lang_allowLoginDescription}}</i></p> + </div> + </fieldset> <br> <input type="hidden" name="token" value="{{token}}"> @@ -99,27 +110,3 @@ </form> </div> </div> - -<script type="text/javascript"><!-- -function slxTestConfig() { - $('#test-button').prop('disabled', true); - $('#test-spin').css('display', ''); - var str = $('#mailconf').serialize(); - str += '&button=test'; - console.log(str); - $.post('?do=DozMod', str).done(function(data) { - console.log('Success'); - console.log(data); - checkRes(data); - }).fail(function() { - checkRes('DozMod refused the connection'); - }).always(function() { - $('#test-button').prop('disabled', false); - $('#test-spin').css('display', 'none'); - }); - } - - function checkRes(text) { - $('#test-output').css('display', '').text(text); - } -// --> </script> |