diff options
author | Simon Rettberg | 2018-02-13 17:52:52 +0100 |
---|---|---|
committer | Simon Rettberg | 2018-02-13 17:52:52 +0100 |
commit | 59430e90b1b9334761d815aeb6e519effe7e5243 (patch) | |
tree | 479c3d1b2470daac02b9a8f24581fb18dc4ca7da /modules-available/dozmod/inc/pagemailtemplates.inc.php | |
parent | [syslog] Permission checks when saving anonymization days (diff) | |
download | slx-admin-59430e90b1b9334761d815aeb6e519effe7e5243.tar.gz slx-admin-59430e90b1b9334761d815aeb6e519effe7e5243.tar.xz slx-admin-59430e90b1b9334761d815aeb6e519effe7e5243.zip |
[dozmod] Move subpages to pages/, hide pages where user has no permission
Diffstat (limited to 'modules-available/dozmod/inc/pagemailtemplates.inc.php')
-rw-r--r-- | modules-available/dozmod/inc/pagemailtemplates.inc.php | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/modules-available/dozmod/inc/pagemailtemplates.inc.php b/modules-available/dozmod/inc/pagemailtemplates.inc.php deleted file mode 100644 index ff47977f..00000000 --- a/modules-available/dozmod/inc/pagemailtemplates.inc.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php - -class Page_mail_templates extends Page -{ - - private $templates = []; - - protected function doPreprocess() - { - User::load(); - - $action = Request::post('action', 'show', 'string'); - if ($action === 'show') { - $this->fetchTemplates(); - } elseif ($action === 'save') { - if (User::hasPermission("templates.save")) { - $this->handleSave(); - } - } elseif ($action === 'reset') { - if(User::hasPermission("templates.reset")) { - $this->handleReset(); - } - } else { - Message::addError('main.invalid-action', $action); - Util::redirect('?do=dozmod§ion=templates'); - } - } - - private function enrichHtml() { - /* for each template */ - foreach ($this->templates as &$t) { - $lis = ""; - $optManVars = ""; - $optVars = ""; - foreach ($t['mandatory_variables'] as $var) { - $optManVars .= "<option selected=\"selected\" value=\"$var\">$var</option>"; - $lis .= "<li><strong>$var</strong></li>"; - } - foreach($t['optional_variables'] as $var) { - $optVars .= "<option selected=\"selected\" value=\"$var\">$var</option>"; - $lis .= "<li>$var</li>"; - } - /* also options for hidden inputs */ - - $t['html_availableVariables'] = $lis; - $t['html_mandatoryVariables'] = $optManVars; - $t['html_optionalVariables'] = $optVars; - - /* also for javascript */ - $t['list_mandatoryVariables'] = - implode(',', $t['mandatory_variables']); - - $t['list_optionalVariables'] = - implode(',', $t['optional_variables']); - - settype($t['original'], 'bool'); - settype($t['edit_version'], 'int'); - settype($t['version'], 'int'); - $t['modified'] = !$t['original']; - $t['conflict'] = !$t['original'] && $t['edit_version'] < $t['version']; - } - } - - protected function doRender() - { - $this->enrichHtml(); - Render::addTemplate('templates', [ - 'templates' => $this->templates, - 'allowedReset' => User::hasPermission("templates.reset"), - 'allowedSave' => User::hasPermission("templates.save"), - ]); - } - - private function forcmp($string) - { - return trim(str_replace("\r\n", "\n", $string)); - } - - private function handleSave() - { - $data = Request::post('templates'); - if (is_array($data)) { - $this->fetchTemplates(); - foreach ($this->templates as &$template) { - if (isset($data[$template['name']])) { - if ($this->forcmp($template['template']) !== $this->forcmp($data[$template['name']]['template'])) { - if (empty($template['original_template'])) { - $template['original_template'] = $template['template']; - } - $template['edit_version'] = $template['version']; - } - $template['original'] = (empty($template['original_template']) && $template['original']) - || $this->forcmp($template['original_template']) === $this->forcmp($data[$template['name']]['template']); - if ($template['original']) { - $template['original_template'] = ''; - } - $template['template'] = $data[$template['name']]['template']; - } - } - unset($template); - $data = json_encode(array('templates' => $this->templates)); - Database::exec("UPDATE sat.configuration SET value = :value WHERE parameter = 'templates'", array('value' => $data)); - Message::addSuccess('templates-saved'); - } else { - Message::addError('nothing-submitted'); - } - Util::redirect('?do=dozmod§ion=templates'); - } - - private function handleReset() - { - $result = Download::asStringPost('http://127.0.0.1:9080/do/reset-mail-templates', array(), 10, $code); - if ($code == 999) { - Message::addError('timeout'); - } elseif ($code != 200) { - Message::addError('dozmod-error', $code); - } else { - Message::addSuccess('all-templates-reset', $result); - } - Util::redirect('?do=dozmod§ion=templates'); - } - - private function fetchTemplates() { - $templates= Database::queryFirst('SELECT value FROM sat.configuration WHERE parameter = :param', array('param' => 'templates')); - if ($templates != null) { - $templates = @json_decode($templates['value'], true); - if (is_array($templates)) { - $names = array_map(function ($e) { return $e['name']; }, $templates['templates']); - array_multisort($names, SORT_ASC, $templates['templates']); - $this->templates = $templates['templates']; - } - } - - } - -} |