summaryrefslogtreecommitdiffstats
path: root/modules-available/dozmod/page.inc.php
diff options
context:
space:
mode:
authorChristian Klinger2016-07-26 14:47:53 +0200
committerChristian Klinger2016-07-26 14:47:53 +0200
commit3d86ea325a17f558fe60ba12edf090745ffdd655 (patch)
treef6f53ba03ec130fa2449deb5187b63f35712a5ec /modules-available/dozmod/page.inc.php
parentMerge branch 'feature/baseconfig-extra-types' into modularization (diff)
downloadslx-admin-3d86ea325a17f558fe60ba12edf090745ffdd655.tar.gz
slx-admin-3d86ea325a17f558fe60ba12edf090745ffdd655.tar.xz
slx-admin-3d86ea325a17f558fe60ba12edf090745ffdd655.zip
dozmod runtimeconfig.
Diffstat (limited to 'modules-available/dozmod/page.inc.php')
-rw-r--r--modules-available/dozmod/page.inc.php80
1 files changed, 74 insertions, 6 deletions
diff --git a/modules-available/dozmod/page.inc.php b/modules-available/dozmod/page.inc.php
index 60c6c24a..669538e5 100644
--- a/modules-available/dozmod/page.inc.php
+++ b/modules-available/dozmod/page.inc.php
@@ -17,6 +17,9 @@ class Page_DozMod extends Page
if ($action === 'mail') {
$this->mailHandler();
}
+ if ($action === 'runtime') {
+ $this->runtimeHandler();
+ }
if ($action === 'delimages') {
$result = $this->handleDeleteImages();
if (!empty($result)) {
@@ -30,14 +33,42 @@ class Page_DozMod extends Page
{
$this->listDeletePendingImages();
// Mail config
- $conf = Database::queryFirst('SELECT value FROM sat.configuration WHERE parameter = :param', array('param' => 'mailconfig'));
- if ($conf != null) {
- $conf = @json_decode($conf['value'], true);
- if (is_array($conf)) {
- $conf['set_' . $conf['ssl']] = 'selected="selected"';
+ $mailConf = Database::queryFirst('SELECT value FROM sat.configuration WHERE parameter = :param', array('param' => 'mailconfig'));
+ if ($mailConf != null) {
+ $mailConf = @json_decode($mailConf['value'], true);
+ if (is_array($mailConf)) {
+ $mailConf['set_' . $mailConf['ssl']] = 'selected="selected"';
}
}
- Render::addTemplate('mailconfig', $conf);
+ Render::addTemplate('mailconfig', $mailConf);
+ // Runtime config
+ $runtimeConf = Database::queryFirst('SELECT value FROM sat.configuration WHERE parameter = :param', array('param' => 'runtimelimits'));
+ if ($runtimeConf != null) {
+ $runtimeConf = json_decode($runtimeConf['value'], true);
+
+ /* convert some value to corresponding "selected" texts */
+ if ($runtimeConf['defaultLecturePermissions']['edit']) {
+ $runtimeConf['defaultLecturePermissions']['edit'] = 'checked="checked"';
+ }
+ if ($runtimeConf['defaultLecturePermissions']['admin']) {
+ $runtimeConf['defaultLecturePermissions']['admin'] = 'checked="checked"';
+ }
+ if ($runtimeConf['defaultImagePermissions']['edit']) {
+ $runtimeConf['defaultImagePermissions']['edit'] = 'checked="checked"';
+ }
+ if ($runtimeConf['defaultImagePermissions']['admin']) {
+ $runtimeConf['defaultImagePermissions']['admin'] = 'checked="checked"';
+ }
+ if ($runtimeConf['defaultImagePermissions']['link']) {
+ $runtimeConf['defaultImagePermissions']['link'] = 'checked="checked"';
+ }
+ if ($runtimeConf['defaultImagePermissions']['download']) {
+ $runtimeConf['defaultImagePermissions']['download'] = 'checked="checked"';
+ }
+
+ }
+ Render::addTemplate('runtimeconfig', $runtimeConf);
+
// User list for making people admin
$this->listUsers();
$this->listOrganizations();
@@ -171,6 +202,43 @@ class Page_DozMod extends Page
Util::redirect('?do=DozMod');
}
+ private function runtimeHandler()
+ {
+ // Check action
+ $do = Request::post('button');
+ if ($do === 'save') {
+ $data = [];
+ $data['defaultLecturePermissions'] = Request::post('defaultLecturePermissions', NULL, "array");
+ $data['defaultImagePermissions'] = Request::post('defaultImagePermissions', NULL, "array");
+
+ foreach(['maxImageValidityDays', 'maxLectureValidityDays', 'maxTransfers'] as $field) {
+ $value = Request::post($field);
+ $data[$field] = $value;
+ }
+
+ /* ensure types */
+ settype($data['defaultLecturePermissions']['edit'], 'boolean');
+ settype($data['defaultLecturePermissions']['admin'], 'boolean');
+ settype($data['defaultImagePermissions']['edit'], 'boolean');
+ 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)'
+ . ' VALUES (:param, :value)'
+ . ' ON DUPLICATE KEY UPDATE value = VALUES(value)', array(
+ 'param' => 'runtimelimits',
+ 'value' => $data
+ ));
+ Message::addSuccess('runtimelimits-config-saved');
+ }
+ Util::redirect('?do=DozMod');
+ }
+
private function listUsers()
{
$res = Database::simpleQuery('SELECT userid, firstname, lastname, email, lastlogin, user.canlogin, issuperuser, emailnotifications,'