3 386bf42a 2022-08-18 mischa // OpenSMTPD Admin
4 386bf42a 2022-08-18 mischa // by Mischa Peters <mischa at high5 dot nl>
5 386bf42a 2022-08-18 mischa // Copyright (c) 2022 High5!
6 386bf42a 2022-08-18 mischa // License Info: LICENSE.TXT
8 386bf42a 2022-08-18 mischa // File: search.php
10 386bf42a 2022-08-18 mischa // Template File: search.tpl
12 386bf42a 2022-08-18 mischa // Template Variables:
14 a628e105 2022-09-04 mischa // list_alias
15 a628e105 2022-09-04 mischa // list_mailbox
17 ff6266ff 2022-09-05 mischa // POST / GET Variables:
21 a628e105 2022-09-04 mischa require_once './functions.inc.php';
22 a628e105 2022-09-04 mischa include './languages/' . check_language() . '.lang';
24 386bf42a 2022-08-18 mischa $SESSID_USERNAME = check_session();
25 1575a178 2022-09-06 mischa $ROLE = check_role($SESSID_USERNAME);
27 080e0cc0 2022-09-05 mischa if ($ROLE == ADMIN_ROLE) {
28 ff6266ff 2022-09-05 mischa $list_domains = list_domains();
30 ff6266ff 2022-09-05 mischa $list_domains = list_domains($SESSID_USERNAME);
33 36ef6f7c 2022-09-04 mischa if ($_SERVER['REQUEST_METHOD'] == "POST") {
34 36ef6f7c 2022-09-04 mischa $search = filter_input(INPUT_POST, 'search', FILTER_DEFAULT);
36 36ef6f7c 2022-09-04 mischa if (isset($search)) {
37 36ef6f7c 2022-09-04 mischa $dbh = pdo_connect();
38 36ef6f7c 2022-09-04 mischa $sth = $dbh->prepare("SELECT alias.address,alias.goto,alias.modified,alias.domain FROM alias LEFT JOIN mailbox ON alias.address=mailbox.username WHERE alias.address LIKE ? AND mailbox.maildir IS NULL ORDER BY alias.address");
39 36ef6f7c 2022-09-04 mischa $sth->bindValue(1, '%'.$search.'%', PDO::PARAM_STR);
40 36ef6f7c 2022-09-04 mischa $sth->execute();
41 36ef6f7c 2022-09-04 mischa $list_alias = $sth->fetchAll();
42 36ef6f7c 2022-09-04 mischa foreach ($list_alias as $key => $value) {
43 36ef6f7c 2022-09-04 mischa if (!in_array($value['domain'], array_column($list_domains, 'domain'))) {
44 36ef6f7c 2022-09-04 mischa unset($list_alias[$key]);
48 36ef6f7c 2022-09-04 mischa $sth = $dbh->prepare("SELECT * FROM mailbox WHERE username LIKE ? ORDER BY username");
49 36ef6f7c 2022-09-04 mischa $sth->bindValue(1, '%'.$search.'%', PDO::PARAM_STR);
50 36ef6f7c 2022-09-04 mischa $sth->execute();
51 36ef6f7c 2022-09-04 mischa $list_mailbox = $sth->fetchAll();
52 36ef6f7c 2022-09-04 mischa foreach ($list_mailbox as $key => $value) {
53 36ef6f7c 2022-09-04 mischa if (!in_array($value['domain'], array_column($list_domains, 'domain'))) {
54 36ef6f7c 2022-09-04 mischa unset($list_mailbox[$key]);
58 36ef6f7c 2022-09-04 mischa $list_alias = array();
59 36ef6f7c 2022-09-04 mischa $list_mailbox = array();
62 a628e105 2022-09-04 mischa include './templates/header.tpl';
63 a628e105 2022-09-04 mischa include './templates/menu.tpl';
64 a628e105 2022-09-04 mischa include './templates/search.tpl';
65 a628e105 2022-09-04 mischa include './templates/footer.tpl';