3 4db75ba3 2022-09-05 mischa // OpenSMTPD Admin
4 4db75ba3 2022-09-05 mischa // by Mischa Peters <mischa at high5 dot nl>
5 4db75ba3 2022-09-05 mischa // Copyright (c) 2022 High5!
6 4db75ba3 2022-09-05 mischa // License Info: LICENSE.TXT
8 4db75ba3 2022-09-05 mischa // File: domain.php
10 4db75ba3 2022-09-05 mischa // Template File: domain.tpl
12 4db75ba3 2022-09-05 mischa // Template Variables:
15 4db75ba3 2022-09-05 mischa // message
17 4db75ba3 2022-09-05 mischa // description
18 4db75ba3 2022-09-05 mischa // aliases
19 4db75ba3 2022-09-05 mischa // mailboxes
21 4db75ba3 2022-09-05 mischa // POST / GET Variables:
24 4db75ba3 2022-09-05 mischa // description
25 4db75ba3 2022-09-05 mischa // aliases
26 4db75ba3 2022-09-05 mischa // mailboxes
28 4db75ba3 2022-09-05 mischa require_once './functions.inc.php';
29 4db75ba3 2022-09-05 mischa include './languages/' . check_language() . '.lang';
31 4db75ba3 2022-09-05 mischa $SESSID_USERNAME = check_session();
32 1575a178 2022-09-06 mischa $ROLE = check_role($SESSID_USERNAME);
34 080e0cc0 2022-09-05 mischa if ($ROLE != ADMIN_ROLE) {
35 4db75ba3 2022-09-05 mischa header("Location: list-domain.php");
39 4db75ba3 2022-09-05 mischa $list_domains = list_domains();
41 4db75ba3 2022-09-05 mischa if ($_SERVER['REQUEST_METHOD'] == "GET") {
42 4db75ba3 2022-09-05 mischa $action = filter_input(INPUT_GET, 'action', FILTER_DEFAULT) ?? 'add';
43 4db75ba3 2022-09-05 mischa if ($action == 'edit') {
44 4db75ba3 2022-09-05 mischa $domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
45 4db75ba3 2022-09-05 mischa $domain_key = array_search($domain, array_column($list_domains, 'domain'));
46 4db75ba3 2022-09-05 mischa $description = $list_domains[$domain_key]['description'];
47 4db75ba3 2022-09-05 mischa $aliases = $list_domains[$domain_key]['aliases'];
48 4db75ba3 2022-09-05 mischa $mailboxes = $list_domains[$domain_key]['mailboxes'];
52 4db75ba3 2022-09-05 mischa if ($_SERVER['REQUEST_METHOD'] == "POST") {
53 4db75ba3 2022-09-05 mischa $action = filter_input(INPUT_GET, 'action', FILTER_DEFAULT) ?? 'add';
54 4db75ba3 2022-09-05 mischa $domain = strtolower(filter_input(INPUT_POST, 'domain', FILTER_VALIDATE_DOMAIN));
55 4db75ba3 2022-09-05 mischa $description = filter_input(INPUT_POST, 'description', FILTER_CALLBACK, array('options' => 'htmlspecialchars'));
56 4db75ba3 2022-09-05 mischa $aliases = filter_input(INPUT_POST, 'aliases', FILTER_VALIDATE_INT);
57 4db75ba3 2022-09-05 mischa $mailboxes = filter_input(INPUT_POST, 'mailboxes', FILTER_VALIDATE_INT);
59 4db75ba3 2022-09-05 mischa if (!in_array($domain, array_column($list_domains, 'domain'))) {
61 4db75ba3 2022-09-05 mischa $dbh = pdo_connect();
62 4db75ba3 2022-09-05 mischa $sth = $dbh->prepare("INSERT INTO domain (domain,description,aliases,mailboxes,created,modified) VALUES (?,?,?,?,NOW(),NOW())");
63 4db75ba3 2022-09-05 mischa $sth->bindParam(1, $domain, PDO::PARAM_STR);
64 4db75ba3 2022-09-05 mischa $sth->bindParam(2, $description, PDO::PARAM_STR);
65 4db75ba3 2022-09-05 mischa $sth->bindParam(3, $aliases, PDO::PARAM_INT);
66 4db75ba3 2022-09-05 mischa $sth->bindParam(4, $mailboxes, PDO::PARAM_INT);
67 4db75ba3 2022-09-05 mischa $sth->execute();
68 4db75ba3 2022-09-05 mischa $message = $LANG['AdminAdd_domain_result_succes'] . "<br />($domain)</br />";
69 4db75ba3 2022-09-05 mischa } catch(PDOException $e) {
70 4db75ba3 2022-09-05 mischa $message = $LANG['AdminAdd_domain_result_error'] . "<br />($domain)<br />";
73 4db75ba3 2022-09-05 mischa $message = $LANG['AdminAdd_domain_domain_text_error'];
76 4db75ba3 2022-09-05 mischa if (in_array($domain, array_column($list_domains, 'domain')) && $action == 'edit') {
78 4db75ba3 2022-09-05 mischa $dbh = pdo_connect();
79 4db75ba3 2022-09-05 mischa $sth = $dbh->prepare("UPDATE domain SET description=?,aliases=?,mailboxes=?,modified=NOW() WHERE domain=?");
80 4db75ba3 2022-09-05 mischa $sth->bindParam(1, $description, PDO::PARAM_STR);
81 4db75ba3 2022-09-05 mischa $sth->bindParam(2, $aliases, PDO::PARAM_INT);
82 4db75ba3 2022-09-05 mischa $sth->bindParam(3, $mailboxes, PDO::PARAM_INT);
83 4db75ba3 2022-09-05 mischa $sth->bindParam(4, $domain, PDO::PARAM_STR);
84 4db75ba3 2022-09-05 mischa $sth->execute();
85 4db75ba3 2022-09-05 mischa header("Location: list-domain.php");
86 4db75ba3 2022-09-05 mischa } catch(PDOException $e) {
87 4db75ba3 2022-09-05 mischa $message = $LANG['AdminEdit_domain_result_error'];
92 4db75ba3 2022-09-05 mischa include './templates/header.tpl';
93 4db75ba3 2022-09-05 mischa include './templates/menu.tpl';
94 4db75ba3 2022-09-05 mischa include './templates/domain.tpl';
95 4db75ba3 2022-09-05 mischa include './templates/footer.tpl';