mailHandler(); } else if ($action === 'setuser') { $this->makeAdmin(); } } protected function doRender() { // 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"'; } } Render::addTemplate('dozmod/mailconfig', $conf); // User list for making people admin $this->listUsers(); } private function cleanMailArray() { $keys = array('host', 'port', 'ssl', 'senderAddress', 'replyTo', 'username', 'password', 'serverName'); $data = array(); foreach ($keys as $key) { $data[$key] = Request::post($key, ''); settype($data[$key], 'string'); if (is_numeric($data[$key])) { settype($data[$key], 'int'); } } return $data; } protected function doAjax() { $do = Request::post('button'); if ($do === 'test') { // Prepare array $data = $this->cleanMailArray(); Header('Content-Type: text/plain; charset=utf-8'); $data['recipient'] = Request::post('recipient', ''); if (!preg_match('/.+@.+\..+/', $data['recipient'])) { $result = 'No recipient given!'; } else { $result = Download::asStringPost('http://127.0.0.1:9080/do/mailtest', $data, 2, $code); } die($result); } } private function mailHandler() { // Check action $do = Request::post('button'); if ($do === 'save') { // Prepare array $data = $this->cleanMailArray(); $data = json_encode($data); Database::exec('INSERT INTO sat.configuration (parameter, value)' . ' VALUES (:param, :value)' . ' ON DUPLICATE KEY UPDATE value = VALUES(value)', array( 'param' => 'mailconfig', 'value' => $data )); Message::addSuccess('mail-config-saved'); Util::redirect('?do=DozMod'); } } private function listUsers() { $res = Database::simpleQuery('SELECT userid, firstname, lastname, email, lastlogin, user.canlogin, issuperuser, emailnotifications,' . ' organization.displayname AS orgname FROM sat.user' . ' LEFT JOIN sat.organization USING (organizationid)' . ' ORDER BY lastname ASC, firstname ASC'); $rows = array(); while ($row = $res->fetch(PDO::FETCH_ASSOC)) { $row['isbanned'] = $this->checked($row['canlogin'] == 0); $row['issuperuser'] = $this->checked($row['issuperuser']); $row['emailnotifications'] = $this->checked($row['emailnotifications']); $row['lastlogin'] = date('d.m.Y', $row['lastlogin']); $rows[] = $row; } Render::addTemplate('dozmod/userlist', array('users' => $rows)); } private function checked($val) { if ($val) return 'checked="checked"'; return ''; } private function makeAdmin() { } }