summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2017-02-08 15:44:28 +0100
committerSimon Rettberg2017-02-08 15:44:28 +0100
commit9f04cb08401e10e4a2df5d0a716bde6138949214 (patch)
treead3f25ed62c145fa18bf86e81a5cb82839a37f7a
parent[render.inc] Add collapse.js (diff)
downloadslx-admin-9f04cb08401e10e4a2df5d0a716bde6138949214.tar.gz
slx-admin-9f04cb08401e10e4a2df5d0a716bde6138949214.tar.xz
slx-admin-9f04cb08401e10e4a2df5d0a716bde6138949214.zip
[dozmod] Add options to enable/disable login by default for new users
-rw-r--r--modules-available/dozmod/lang/de/template-tags.json3
-rw-r--r--modules-available/dozmod/lang/en/template-tags.json3
-rw-r--r--modules-available/dozmod/page.inc.php49
-rw-r--r--modules-available/dozmod/templates/runtimeconfig.html35
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>