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