alias and mailbox almost indentical
This commit is contained in:
parent
e0b946dd8b
commit
e6bb18d3eb
124
add-alias.php
124
add-alias.php
|
@ -5,108 +5,74 @@
|
|||
// Copyright (c) 2022 High5!
|
||||
// License Info: LICENSE.TXT
|
||||
//
|
||||
// File: create-alias.php
|
||||
// File: add-alias.php
|
||||
//
|
||||
// Template File: create-alias.tpl
|
||||
// Template File: add-alias.tpl
|
||||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// tMessage
|
||||
// tAddress
|
||||
// tGoto
|
||||
// tDomain
|
||||
// message
|
||||
// address
|
||||
// domain
|
||||
// goto
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// fAddress
|
||||
// fGoto
|
||||
// fDomain
|
||||
// address
|
||||
// domain
|
||||
// goto
|
||||
//
|
||||
require("./functions.inc.php");
|
||||
include("./languages/" . check_language() . ".lang");
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$pCreate_alias_goto_text = $LANG['Create_alias_goto_text'];
|
||||
|
||||
if (isset($_GET['domain'])) $tDomain = escape_string($_GET['domain']);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
$pCreate_alias_goto_text = $LANG['Create_alias_goto_text'];
|
||||
$address = strtolower(filter_input(INPUT_POST, 'address', FILTER_DEFAULT));
|
||||
$domain = filter_input(INPUT_POST, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$goto = strtolower(filter_input(INPUT_POST, 'goto', FILTER_DEFAULT));
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
$from = filter_var($address . '@' . $domain, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
$fAddress = escape_string($_POST['fAddress']) . "@" . escape_string($_POST['fDomain']);
|
||||
$fAddress = strtolower($fAddress);
|
||||
$fGoto = escape_string($_POST['fGoto']);
|
||||
$fGoto = strtolower($fGoto);
|
||||
$fDomain = escape_string($_POST['fDomain']);
|
||||
if (!str_contains($goto, '@')) {
|
||||
$goto = $goto . "@" . $domain;
|
||||
}
|
||||
$goto = filter_var($goto, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
if (!preg_match('/@/',$fGoto)) {
|
||||
$fGoto = $fGoto . "@" . escape_string($_POST['fDomain']);
|
||||
if ($list_domains[$domain_key]['aliases'] != 0 && $list_domains[$domain_key]['alias_count'] >= $list_domains[$domain_key]['aliases']) {
|
||||
$message = $LANG['Create_alias_address_text_error2'];
|
||||
}
|
||||
|
||||
if (!check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$error = 1;
|
||||
$tAddress = escape_string($_POST['fAddress']);
|
||||
$tGoto = $fGoto;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_alias_address_text = $LANG['Create_alias_address_text_error1'];
|
||||
if (empty($address) || empty($goto)) {
|
||||
$message = $LANG['Create_alias_address_text_error1'];
|
||||
}
|
||||
|
||||
if (!check_alias($fDomain)) {
|
||||
$error = 1;
|
||||
$tAddress = escape_string($_POST['fAddress']);
|
||||
$tGoto = $fGoto;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_alias_address_text = $LANG['Create_alias_address_text_error3'];
|
||||
}
|
||||
|
||||
if (empty($fAddress) or !check_email($fAddress)) {
|
||||
$error = 1;
|
||||
$tAddress = escape_string($_POST['fAddress']);
|
||||
$tGoto = $fGoto;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_alias_address_text = $LANG['Create_alias_address_text_error1'];
|
||||
}
|
||||
|
||||
if (empty($fGoto) or !check_email($fGoto)) {
|
||||
$error = 1;
|
||||
$tAddress = escape_string($_POST['fAddress']);
|
||||
$tGoto = $fGoto;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_alias_goto_text = $LANG['Create_alias_goto_text_error'];
|
||||
}
|
||||
|
||||
if (escape_string($_POST['fAddress']) == "*") $fAddress = "@" . escape_string($_POST['fDomain']);
|
||||
|
||||
$result = db_query("SELECT * FROM alias WHERE address='$fAddress'");
|
||||
if ($result['rows'] == 1) {
|
||||
$error = 1;
|
||||
$tAddress = escape_string($_POST['fAddress']);
|
||||
$tGoto = $fGoto;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_alias_address_text = $LANG['Create_alias_address_text_error2'];
|
||||
}
|
||||
|
||||
if ($error != 1) {
|
||||
if (preg_match('/^\*@(.*)$/', $fGoto, $match)) $fGoto = "@" . $match[1];
|
||||
|
||||
$result = db_query("INSERT INTO alias (address,goto,domain,created,modified) VALUES ('$fAddress','$fGoto','$fDomain',NOW(),NOW())");
|
||||
if ($result['rows'] != 1) {
|
||||
$tDomain = $fDomain;
|
||||
$tMessage = $LANG['Create_alias_result_error'] . "<br />($fAddress -> $fGoto)<br />\n";
|
||||
} else {
|
||||
db_log($SESSID_USERNAME, $fDomain, "create alias", "$fAddress -> $fGoto");
|
||||
|
||||
$tDomain = $fDomain;
|
||||
$tMessage = $LANG['Create_alias_result_succes'] . "<br />($fAddress -> $fGoto)<br />\n";
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("INSERT INTO alias (address,goto,domain,created,modified) VALUES (?,?,?,NOW(),NOW())");
|
||||
$sth->bindParam(1, $from, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $goto, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging($admin, $domain, "create alias", "$from -> $goto");
|
||||
$message = $LANG['Create_alias_result_succes'] . "<br />($from -> $goto)</br />";
|
||||
$address = '';
|
||||
$goto = '';
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Create_alias_result_error'] . "<br />($from -> $goto)<br />";
|
||||
}
|
||||
}
|
||||
}
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/add-alias.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/add-alias.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
||||
|
|
214
add-mailbox.php
214
add-mailbox.php
|
@ -5,187 +5,95 @@
|
|||
// Copyright (c) 2022 High5!
|
||||
// License Info: LICENSE.TXT
|
||||
//
|
||||
// File: create-mailbox.php
|
||||
// File: add-mailbox.php
|
||||
//
|
||||
// Template File: create-mailbox.tpl
|
||||
// Template File: add-mailbox.tpl
|
||||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// tMessage
|
||||
// tUsername
|
||||
// tName
|
||||
// tQuota
|
||||
// tDomain
|
||||
// message
|
||||
// username
|
||||
// name
|
||||
// domain
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// fUsername
|
||||
// fPassword
|
||||
// fPassword2
|
||||
// fName
|
||||
// fQuota
|
||||
// fDomain
|
||||
// fActive
|
||||
// fMail
|
||||
// username
|
||||
// password1
|
||||
// password2
|
||||
// name
|
||||
// domain
|
||||
//
|
||||
require("./functions.inc.php");
|
||||
include("./languages/" . check_language() . ".lang");
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$tQuota = $CONF['maxquota'];
|
||||
|
||||
$pCreate_mailbox_password_text = $LANG['Create_mailbox_password_text'];
|
||||
$pCreate_mailbox_name_text = $LANG['Create_mailbox_name_text'];
|
||||
$pCreate_mailbox_quota_text = $LANG['Create_mailbox_quota_text'];
|
||||
|
||||
if (isset($_GET['domain'])) $tDomain = escape_string($_GET['domain']);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
$pCreate_mailbox_password_text = $LANG['Create_mailbox_password_text'];
|
||||
$pCreate_mailbox_name_text = $LANG['Create_mailbox_name_text'];
|
||||
$pCreate_mailbox_quota_text = $LANG['Create_mailbox_quota_text'];
|
||||
|
||||
$fUsername = escape_string($_POST['fUsername']) . "@" . escape_string($_POST['fDomain']);
|
||||
$fUsername = strtolower($fUsername);
|
||||
$fPassword = escape_string($_POST['fPassword']);
|
||||
$fPassword2 = escape_string($_POST['fPassword2']);
|
||||
$fName = escape_string($_POST['fName']);
|
||||
$fDomain = escape_string($_POST['fDomain']);
|
||||
if (isset($_POST['fQuota'])) $fQuota = escape_string($_POST['fQuota']);
|
||||
if (isset($_POST['fActive'])) $fActive = escape_string($_POST['fActive']);
|
||||
if (isset($_POST['fMail'])) $fMail = escape_string($_POST['fMail']);
|
||||
$username = strtolower(filter_input(INPUT_POST, 'username', FILTER_DEFAULT));
|
||||
$domain = filter_input(INPUT_POST, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$password1 = filter_input(INPUT_POST, 'password1', FILTER_DEFAULT);
|
||||
$password2 = filter_input(INPUT_POST, 'password2', FILTER_DEFAULT);
|
||||
$name = filter_input(INPUT_POST, 'name', FILTER_DEFAULT);
|
||||
|
||||
if (!check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$error = 1;
|
||||
$tUsername = escape_string($_POST['fUsername']);
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_mailbox_username_text = $LANG['Create_mailbox_username_text_error1'];
|
||||
}
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
if (!check_mailbox($fDomain)) {
|
||||
$error = 1;
|
||||
$tUsername = escape_string($_POST['fUsername']);
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_mailbox_username_text = $LANG['Create_mailbox_username_text_error3'];
|
||||
$from = filter_var($username . '@' . $domain, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
if ($list_domains[$domain_key]['mailboxes'] != 0 && $list_domains[$domain_key]['mailbox_count'] >= $list_domains[$domain_key]['mailboxes']) {
|
||||
$message = $LANG['Create_mailbox_username_text_error3'];
|
||||
}
|
||||
|
||||
if (empty($fUsername) or !check_email($fUsername)) {
|
||||
$error = 1;
|
||||
$tUsername = escape_string($_POST['fUsername']);
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_mailbox_username_text = $LANG['Create_mailbox_username_text_error1'];
|
||||
if (empty($username)) {
|
||||
$message = $LANG['Create_mailbox_username_text_error1'];
|
||||
}
|
||||
|
||||
if (empty($fPassword) or ($fPassword != $fPassword2)) {
|
||||
if ($CONF['generate_password'] == "YES") {
|
||||
$fPassword = generate_password();
|
||||
} else {
|
||||
$error = 1;
|
||||
$tUsername = escape_string($_POST['fUsername']);
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_mailbox_password_text = $LANG['Create_mailbox_password_text_error'];
|
||||
}
|
||||
if (empty($password1) or ($password1 != $password2)) {
|
||||
$message = $LANG['Create_mailbox_password_text_error'];
|
||||
}
|
||||
|
||||
if ($CONF['quota'] == "YES") {
|
||||
if (!check_quota($fQuota, $fDomain)) {
|
||||
$error = 1;
|
||||
$tUsername = escape_string($_POST['fUsername']);
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_mailbox_quota_text = $LANG['Create_mailbox_quota_text_error'];
|
||||
}
|
||||
}
|
||||
|
||||
$result = db_query("SELECT * FROM alias WHERE address='$fUsername'");
|
||||
if ($result['rows'] == 1) {
|
||||
$error = 1;
|
||||
$tUsername = escape_string($_POST['fUsername']);
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tDomain = $fDomain;
|
||||
$pCreate_mailbox_username_text = $LANG['Create_mailbox_username_text_error2'];
|
||||
}
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
$hashed = bcrypt($password1);
|
||||
$maildir = $from . "/";
|
||||
|
||||
if ($error != 1) {
|
||||
$password = pacrypt($fPassword);
|
||||
|
||||
if ($CONF['domain_path'] == "YES") {
|
||||
if ($CONF['domain_in_mailbox'] == "YES") {
|
||||
$maildir = $fDomain . "/" . $fUsername . "/";
|
||||
} else {
|
||||
$maildir = $fDomain . "/" . escape_string($_POST['fUsername']) . "/";
|
||||
}
|
||||
} else {
|
||||
$maildir = $fUsername . "/";
|
||||
}
|
||||
|
||||
if (!empty($fQuota)) {
|
||||
$quota = $fQuota * $CONF['quota_multiplier'];
|
||||
} else {
|
||||
$quota = 0;
|
||||
}
|
||||
|
||||
if ($fActive == "on") {
|
||||
$fActive = 1;
|
||||
} else {
|
||||
$fActive = 0;
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("INSERT INTO alias (address,goto,domain,created,modified) VALUES (?,'vmail',?,NOW(),NOW())");
|
||||
$sth->bindParam(1, $from, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
$username = '';
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Create_alias_result_error'] . "<br />($from) - $e<br />";
|
||||
}
|
||||
|
||||
$result = db_query("INSERT INTO alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','vmail','$fDomain',NOW(),NOW(),'$fActive')");
|
||||
if ($result['rows'] != 1) {
|
||||
$tDomain = $fDomain;
|
||||
$tMessage = $LANG['Alias_result_error'] . "<br />($fUsername -> $fUsername)</br />";
|
||||
}
|
||||
|
||||
$result = db_query("INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$quota','$fDomain',NOW(),NOW(),'$fActive')");
|
||||
if ($result['rows'] != 1) {
|
||||
$tDomain = $fDomain;
|
||||
$tMessage .= $LANG['Create_mailbox_result_error'] . "<br />($fUsername)<br />";
|
||||
} else {
|
||||
db_log($SESSID_USERNAME, $fDomain, "create mailbox", "$fUsername");
|
||||
|
||||
$tDomain = $fDomain;
|
||||
$tMessage = $LANG['Create_mailbox_result_succes'] . "<br />($fUsername";
|
||||
if ($CONF['generate_password'] == "YES") {
|
||||
$tMessage .= " / $fPassword)</br />";
|
||||
} else {
|
||||
$tMessage .= ")</br />";
|
||||
}
|
||||
|
||||
$tQuota = $CONF['maxquota'];
|
||||
|
||||
if ($fMail == "on") {
|
||||
$fTo = $fUsername;
|
||||
$fSubject = $LANG['Sendmail_subject_text'];
|
||||
$fHeaders = "From: " . $SESSID_USERNAME . "\r\n";
|
||||
$fHeaders .= "Content-Type: text/plain; charset=utf-8\r\n";
|
||||
$fBody = $CONF['welcome_text'];
|
||||
|
||||
if (!mail($fTo, $fSubject, $fBody, $fHeaders)) {
|
||||
$tMessage .= "<br />" . $LANG['Sendmail_result_error'] . "<br />";
|
||||
} else {
|
||||
$tMessage .= "<br />" . $LANG['Sendmail_result_succes'] . "<br />";
|
||||
}
|
||||
}
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("INSERT INTO mailbox (username,password,name,maildir,domain,created,modified) VALUES (?,?,?,?,?,NOW(),NOW())");
|
||||
$sth->bindParam(1, $from, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $hashed, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $name, PDO::PARAM_STR);
|
||||
$sth->bindParam(4, $maildir, PDO::PARAM_STR);
|
||||
$sth->bindParam(5, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging($admin, $domain, "create mailbox", "$from");
|
||||
$message = $LANG['Create_mailbox_result_succes'] . "<br />($from)";
|
||||
$username = '';
|
||||
$name = '';
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Create_alias_result_error'] . "<br />($from) - $e<br />";
|
||||
}
|
||||
}
|
||||
}
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/add-mailbox.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/add-mailbox.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
||||
|
|
|
@ -26,6 +26,7 @@ require_once '../functions.inc.php';
|
|||
include '../languages/' . check_language() . '.lang';
|
||||
|
||||
$list_domains = list_domains();
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
|
@ -36,17 +37,15 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$address = strtolower(filter_input(INPUT_POST, 'address', FILTER_DEFAULT));
|
||||
$domain = filter_input(INPUT_POST, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$goto = strtolower(filter_input(INPUT_POST, 'goto', FILTER_DEFAULT));
|
||||
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
print "$domain_key";
|
||||
|
||||
$from = filter_var($address . '@' . $domain, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
if (!str_contains($goto, '@')) {
|
||||
$goto = $goto . "@" . $domain;
|
||||
}
|
||||
$goto = filter_var($goto, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
if ($list_domains[$domain_key]['alias_count'] < 0 || $list_domains[$domain_key]['alias_count'] >= $list_domains[$domain_key]['aliases']) {
|
||||
if ($list_domains[$domain_key]['aliases'] != 0 && $list_domains[$domain_key]['alias_count'] >= $list_domains[$domain_key]['aliases']) {
|
||||
$message = $LANG['Create_alias_address_text_error2'];
|
||||
}
|
||||
|
||||
|
@ -54,7 +53,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$message = $LANG['Create_alias_address_text_error1'];
|
||||
}
|
||||
|
||||
if (empty($message)) {
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("INSERT INTO alias (address,goto,domain,created,modified) VALUES (?,?,?,NOW(),NOW())");
|
||||
|
@ -62,12 +61,12 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$sth->bindParam(2, $goto, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging(ADMIN_EMAIL, $domain, "create alias", "$from -> $goto");
|
||||
logging($admin, $domain, "create alias", "$from -> $goto");
|
||||
$message = $LANG['Create_alias_result_succes'] . "<br />($from -> $goto)</br />";
|
||||
$address = '';
|
||||
$goto = '';
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Create_alias_result_error'] . "<br />($from -> $goto) - $e<br />";
|
||||
$message = $LANG['Create_alias_result_error'] . "<br />($from -> $goto)<br />";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ require_once '../functions.inc.php';
|
|||
include '../languages/' . check_language() . '.lang';
|
||||
|
||||
$list_domains = list_domains();
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
|
@ -45,7 +46,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
|
||||
$from = filter_var($username . '@' . $domain, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
if ($list_domains[$domain_key]['mailbox_count'] < 0 || $list_domains[$domain_key]['mailbox_count'] >= $list_domains[$domain_key]['mailboxes']) {
|
||||
if ($list_domains[$domain_key]['mailboxes'] != 0 && $list_domains[$domain_key]['mailbox_count'] >= $list_domains[$domain_key]['mailboxes']) {
|
||||
$message = $LANG['Create_mailbox_username_text_error3'];
|
||||
}
|
||||
|
||||
|
@ -57,7 +58,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$message = $LANG['Create_mailbox_password_text_error'];
|
||||
}
|
||||
|
||||
if (empty($message)) {
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
$hashed = bcrypt($password1);
|
||||
$maildir = $from . "/";
|
||||
|
||||
|
@ -81,7 +82,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$sth->bindParam(4, $maildir, PDO::PARAM_STR);
|
||||
$sth->bindParam(5, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging(ADMIN_EMAIL, $domain, "create mailbox", "$from");
|
||||
logging($admin, $domain, "create mailbox", "$from");
|
||||
$message = $LANG['Create_mailbox_result_succes'] . "<br />($from)";
|
||||
$username = '';
|
||||
$name = '';
|
||||
|
|
|
@ -84,7 +84,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
if ($password1 != $password2) {
|
||||
$message = $LANG['AdminAdd_admin_password_error'];
|
||||
}
|
||||
if (!empty($password1) && empty($message)) {
|
||||
if (empty($message) && !empty($password1)) {
|
||||
$hashed = bcrypt($password1);
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
|
|
|
@ -23,10 +23,14 @@
|
|||
require_once '../functions.inc.php';
|
||||
include '../languages/' . check_language() . '.lang';
|
||||
|
||||
$list_domains = list_domains();
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$table = strtolower(filter_input(INPUT_GET, 'table', FILTER_DEFAULT));
|
||||
$delete = filter_input(INPUT_GET, 'delete', FILTER_DEFAULT);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_DEFAULT);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
if ($table == "domain") {
|
||||
try {
|
||||
|
@ -95,6 +99,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||
|
||||
$dbh->commit();
|
||||
header("Location: list-domain.php");
|
||||
exit;
|
||||
} catch (RuntimeException $e) {
|
||||
$message = $e->getMessage();
|
||||
$dbh->rollBack();
|
||||
|
@ -130,6 +135,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||
|
||||
$dbh->commit();
|
||||
header("Location: list-admin.php");
|
||||
exit;
|
||||
} catch (RuntimeException $e) {
|
||||
$message = $e->getMessage();
|
||||
$dbh->rollBack();
|
||||
|
@ -139,7 +145,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||
}
|
||||
}
|
||||
|
||||
if ($table == 'alias' || $table == 'mailbox') {
|
||||
if (($table == 'alias' || $table == 'mailbox') && in_array($domain, array_column($list_domains, 'domain'))) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("DELETE FROM alias WHERE address=? AND domain=?");
|
||||
|
@ -149,9 +155,10 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||
if ($sth->rowCount() != 1) {
|
||||
throw new RuntimeException('alias');
|
||||
}
|
||||
logging(ADMIN_EMAIL, $domain, "delete alias", $delete);
|
||||
logging($admin, $domain, "delete alias", $delete);
|
||||
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
exit;
|
||||
} catch (RuntimeException $e) {
|
||||
$message = $LANG['Delete_delete_error'] . "<b>$delete</b> (" . $e->getMessage() . ")!</span>";
|
||||
} catch (PDOException $e) {
|
||||
|
@ -167,7 +174,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||
if ($sth->rowCount() != 1) {
|
||||
throw new RuntimeException('mailbox');
|
||||
}
|
||||
logging(ADMIN_EMAIL, $domain, "delete mailbox", $delete);
|
||||
logging($admin, $domain, "delete mailbox", $delete);
|
||||
|
||||
$sth = $dbh->prepare("DELETE FROM vacation WHERE email=? AND domain=?");
|
||||
$sth->bindParam(1, $delete, PDO::PARAM_STR);
|
||||
|
@ -175,6 +182,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||
$sth->execute();
|
||||
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
exit;
|
||||
} catch (RuntimeException $e) {
|
||||
$message = $LANG['Delete_delete_error'] . "<b>$delete</b> (" . $e->getMessage() . ")!</span>";
|
||||
} catch (PDOException $e) {
|
||||
|
|
|
@ -23,9 +23,13 @@
|
|||
require_once '../functions.inc.php';
|
||||
include '../languages/' . check_language() . '.lang';
|
||||
|
||||
$list_domains = list_domains();
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$address = filter_input(INPUT_GET, 'address', FILTER_VALIDATE_EMAIL);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
|
@ -44,6 +48,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$address = strtolower(filter_input(INPUT_GET, 'address', FILTER_VALIDATE_EMAIL));
|
||||
$domain = strtolower(filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN));
|
||||
$goto = strtolower(filter_input(INPUT_POST, 'goto', FILTER_DEFAULT));
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
if (empty($goto)) {
|
||||
$goto = array();
|
||||
|
@ -62,7 +67,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
}
|
||||
}
|
||||
|
||||
if (empty($message)) {
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("UPDATE alias SET goto=?,modified=NOW() WHERE address=? AND domain=?");
|
||||
|
@ -70,7 +75,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$sth->bindParam(2, $address, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging(ADMIN_EMAIL, $domain, "edit alias", "$address -> $goto");
|
||||
logging($admin, $domain, "edit alias", "$address -> $goto");
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_alias_result_error'];
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
require_once '../functions.inc.php';
|
||||
include '../languages/' . check_language() . '.lang';
|
||||
|
||||
$list_domains = list_domains();
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$username = strtolower(filter_input(INPUT_GET, 'username', FILTER_DEFAULT));
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
|
@ -53,7 +56,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$message = $LANG['Edit_mailbox_password_text_error'];
|
||||
}
|
||||
|
||||
if (!empty($pqassword1) && empty($message)) {
|
||||
if (empty($message) && isset($domain_key) && !empty($password1)) {
|
||||
$hashed = bcrypt($password1);
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
|
@ -68,7 +71,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
}
|
||||
}
|
||||
|
||||
if (empty($message)) {
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("UPDATE mailbox SET name=?,modified=NOW() WHERE username=? AND domain=?");
|
||||
|
@ -76,7 +79,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
|||
$sth->bindParam(2, $username, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging(ADMIN_EMAIL, $domain, "edit mailbox", $username);
|
||||
logging($admin, $domain, "edit mailbox", $username);
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_mailbox_result_error'];
|
||||
|
|
108
delete.php
108
delete.php
|
@ -11,67 +11,75 @@
|
|||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// tMessage
|
||||
// message
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// fDelete
|
||||
// fDomain
|
||||
// table
|
||||
// where
|
||||
// delete
|
||||
// domain
|
||||
//
|
||||
require("./variables.inc.php");
|
||||
require("./config.inc.php");
|
||||
require("./functions.inc.php");
|
||||
include("./languages/" . check_language() . ".lang");
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains_for_admin($SESSID_USERNAME);
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
if (isset($_GET['delete'])) $fDelete = escape_string($_GET['delete']);
|
||||
if (isset($_GET['domain'])) $fDomain = escape_string($_GET['domain']);
|
||||
$table = strtolower(filter_input(INPUT_GET, 'table', FILTER_DEFAULT));
|
||||
$delete = filter_input(INPUT_GET, 'delete', FILTER_DEFAULT);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
if (in_array($_GET['domain'], array_column($list_domains, 'domain'))) {
|
||||
#if (!check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$error = 1;
|
||||
$tMessage = $LANG['Delete_domain_error'] . "<b>$fDomain</b>!</div>";
|
||||
} else {
|
||||
|
||||
$result = db_query("DELETE FROM alias WHERE address='$fDelete' AND domain='$fDomain'");
|
||||
if ($result['rows'] != 1) {
|
||||
$error = 1;
|
||||
$tMessage = $LANG['Delete_delete_error'] . "<b>$fDelete</b> (alias)!</div>";
|
||||
} else {
|
||||
db_log($SESSID_USERNAME, $fDomain, "delete alias", $fDelete);
|
||||
}
|
||||
|
||||
$result = db_query("SELECT * FROM mailbox WHERE username='$fDelete' AND domain='$fDomain'");
|
||||
if ($result['rows'] == 1) {
|
||||
$result = db_query("DELETE FROM mailbox WHERE username='$fDelete' AND domain='$fDomain'");
|
||||
if ($result['rows'] != 1) {
|
||||
$error = 1;
|
||||
$tMessage = $LANG['Delete_delete_error'] . "<b>$fDelete</b> (mailbox)!</div>";
|
||||
} else {
|
||||
db_query("DELETE FROM vacation WHERE email='$fDelete' AND domain='$fDomain'");
|
||||
db_log($SESSID_USERNAME, $fDomain, "delete mailbox", $fDelete);
|
||||
if (($table == 'alias' || $table == 'mailbox') && in_array($domain, array_column($list_domains, 'domain'))) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("DELETE FROM alias WHERE address=? AND domain=?");
|
||||
$sth->bindParam(1, $delete, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
if ($sth->rowCount() != 1) {
|
||||
throw new RuntimeException('alias');
|
||||
}
|
||||
logging($admin, $domain, "delete alias", $delete);
|
||||
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
exit;
|
||||
} catch (RuntimeException $e) {
|
||||
$message = $LANG['Delete_delete_error'] . "<b>$delete</b> (" . $e->getMessage() . ")!</span>";
|
||||
} catch (PDOException $e) {
|
||||
$message = $LANG['Delete_delete_error'] . "<b>$delete</b> (alias)!</span> " . $e-getMessage();
|
||||
}
|
||||
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("DELETE FROM mailbox WHERE username=? AND domain=?");
|
||||
$sth->bindParam(1, $delete, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
if ($sth->rowCount() != 1) {
|
||||
throw new RuntimeException('mailbox');
|
||||
}
|
||||
logging($admin, $domain, "delete mailbox", $delete);
|
||||
|
||||
$sth = $dbh->prepare("DELETE FROM vacation WHERE email=? AND domain=?");
|
||||
$sth->bindParam(1, $delete, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
exit;
|
||||
} catch (RuntimeException $e) {
|
||||
$message = $LANG['Delete_delete_error'] . "<b>$delete</b> (" . $e->getMessage() . ")!</span>";
|
||||
} catch (PDOException $e) {
|
||||
$message = $LANG['Delete_delete_error'] . "<b>$delete</b> (mailbox)!</span>";
|
||||
}
|
||||
}
|
||||
|
||||
if ($error != 1) {
|
||||
header("Location: overview.php?domain=$fDomain");
|
||||
exit;
|
||||
}
|
||||
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/message.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/message.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
}
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/message.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
<?php
|
||||
//
|
||||
// OpenSMTPD Admin
|
||||
// by Mischa Peters <mischa at high5 dot nl>
|
||||
// Copyright (c) 2022 High5!
|
||||
// License Info: LICENSE.TXT
|
||||
//
|
||||
// File: edit-active.php
|
||||
//
|
||||
// Template File: message.tpl
|
||||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// tMessage
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// fUsername
|
||||
// fDomain
|
||||
//
|
||||
require("./variables.inc.php");
|
||||
require("./config.inc.php");
|
||||
require("./functions.inc.php");
|
||||
include("./languages/" . check_language() . ".lang");
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
if (isset($_GET['username'])) $fUsername = escape_string($_GET['username']);
|
||||
if (isset($_GET['domain'])) $fDomain = escape_string($_GET['domain']);
|
||||
|
||||
if (!check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$error = 1;
|
||||
$tMessage = $LANG['Edit_mailbox_domain_error'] . "<b>$fDomain</b>!</font>";
|
||||
} else {
|
||||
$result = db_query("UPDATE mailbox SET active=1-active WHERE username='$fUsername' AND domain='$fDomain'");
|
||||
if ($result['rows'] != 1) {
|
||||
$error = 1;
|
||||
$tMessage = $LANG['Edit_mailbox_result_error'];
|
||||
} else {
|
||||
db_log($SESSID_USERNAME, $fDomain, "edit active", $fUsername);
|
||||
}
|
||||
}
|
||||
|
||||
if ($error != 1) {
|
||||
header("Location: overview.php?domain=$fDomain");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/message.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
?>
|
125
edit-alias.php
125
edit-alias.php
|
@ -11,91 +11,80 @@
|
|||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// tMessage
|
||||
// tGoto
|
||||
// message
|
||||
// goto
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// fAddress
|
||||
// fDomain
|
||||
// fGoto
|
||||
// address
|
||||
// domain
|
||||
// goto
|
||||
//
|
||||
require("./variables.inc.php");
|
||||
require("./config.inc.php");
|
||||
require("./functions.inc.php");
|
||||
include("./languages/" . check_language() . ".lang");
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$fAddress = escape_string($_GET['address']);
|
||||
$fDomain = escape_string($_GET['domain']);
|
||||
$address = filter_input(INPUT_GET, 'address', FILTER_VALIDATE_EMAIL);
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
if (check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$result = db_query("SELECT * FROM alias WHERE address='$fAddress' AND domain='$fDomain'");
|
||||
if ($result['rows'] == 1) {
|
||||
$row = db_array($result['result']);
|
||||
$tGoto = $row['goto'];
|
||||
}
|
||||
} else {
|
||||
$tMessage = $LANG['Edit_alias_address_error'];
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("SELECT goto FROM alias WHERE address=? AND domain=?");
|
||||
$sth->bindParam(1, $address, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
$goto = $sth->fetch(PDO::FETCH_COLUMN);
|
||||
$goto = explode(',', $goto);
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_alias_address_error'];
|
||||
}
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
$pEdit_alias_goto = $LANG['Edit_alias_goto'];
|
||||
$address = strtolower(filter_input(INPUT_GET, 'address', FILTER_VALIDATE_EMAIL));
|
||||
$domain = strtolower(filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN));
|
||||
$goto = strtolower(filter_input(INPUT_POST, 'goto', FILTER_DEFAULT));
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
|
||||
$fAddress = escape_string($_GET['address']);
|
||||
$fAddress = strtolower($fAddress);
|
||||
$fDomain = escape_string($_GET['domain']);
|
||||
$fGoto = escape_string($_POST['fGoto']);
|
||||
$fGoto = strtolower($fGoto);
|
||||
|
||||
if (!check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$error = 1;
|
||||
$tGoto = $fGoto;
|
||||
$tMessage = $LANG['Edit_alias_domain_error'] . "$fDomain</font>";
|
||||
}
|
||||
|
||||
if (empty($fGoto)) {
|
||||
$error = 1;
|
||||
$tGoto = $fGoto;
|
||||
$tMessage = $LANG['Edit_alias_goto_text_error1'];
|
||||
}
|
||||
|
||||
$goto = preg_replace('/\\\r\\\n/', ',', $fGoto);
|
||||
$goto = preg_replace('/\r\n/', ',', $fGoto);
|
||||
$goto = preg_replace('/[\s]+/i', '', $goto);
|
||||
$goto = preg_replace('/\,*$/', '', $goto);
|
||||
$array = preg_split('/,/', $goto);
|
||||
|
||||
if (!empty($array)) { $array_count = count($array); }
|
||||
|
||||
for($i = 0; $i < $array_count; $i++) {
|
||||
if (in_array("$array[$i]", $CONF['default_aliases'])) continue;
|
||||
if (empty($array[$i])) continue;
|
||||
if (!check_email($array[$i]))
|
||||
{
|
||||
$error = 1;
|
||||
$tGoto = $goto;
|
||||
$tMessage = $LANG['Edit_alias_goto_text_error2'] . "$array[$i]</div>";
|
||||
if (empty($goto)) {
|
||||
$goto = array();
|
||||
$message = $LANG['Edit_alias_goto_text_error1'];
|
||||
} else {
|
||||
$goto = preg_replace('/\\\r\\\n/', ',', $goto);
|
||||
$goto = preg_replace('/\r\n/', ',', $goto);
|
||||
$goto = preg_replace('/[\s]+/i', '', $goto);
|
||||
$goto = preg_replace('/\,*$/', '', $goto);
|
||||
$validate_goto = explode(',', $goto);
|
||||
foreach ($validate_goto as $row) {
|
||||
if (!filter_var($row, FILTER_VALIDATE_EMAIL)) {
|
||||
$goto = explode(',', $goto);
|
||||
$message = $LANG['Edit_alias_goto_text_error2'] . "$row</div>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($error != 1) {
|
||||
$result = db_query("UPDATE alias SET goto='$goto',modified=NOW() WHERE address='$fAddress' AND domain='$fDomain'");
|
||||
if ($result['rows'] != 1) {
|
||||
$tMessage = $LANG['Edit_alias_result_error'];
|
||||
} else {
|
||||
db_log($SESSID_USERNAME, $fDomain, "edit alias", "$fAddress -> $goto");
|
||||
|
||||
header("Location: overview.php?domain=$fDomain");
|
||||
exit;
|
||||
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("UPDATE alias SET goto=?,modified=NOW() WHERE address=? AND domain=?");
|
||||
$sth->bindParam(1, $goto, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $address, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging($admin, $domain, "edit alias", "$address -> $goto");
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_alias_result_error'];
|
||||
}
|
||||
}
|
||||
}
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/edit-alias.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/edit-alias.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
||||
|
|
160
edit-mailbox.php
160
edit-mailbox.php
|
@ -11,122 +11,84 @@
|
|||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// tMessage
|
||||
// tName
|
||||
// tQuota
|
||||
// message
|
||||
// name
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// fUsername
|
||||
// fDomain
|
||||
// fPassword
|
||||
// fPassword2
|
||||
// fName
|
||||
// fQuota
|
||||
// fActive
|
||||
// username
|
||||
// domain
|
||||
// password1
|
||||
// password2
|
||||
// name
|
||||
//
|
||||
require("./variables.inc.php");
|
||||
require("./config.inc.php");
|
||||
require("./functions.inc.php");
|
||||
include("./languages/" . check_language() . ".lang");
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$fUsername = escape_string($_GET['username']);
|
||||
$fDomain = escape_string($_GET['domain']);
|
||||
$username = strtolower(filter_input(INPUT_GET, 'username', FILTER_DEFAULT));
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
|
||||
if (check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$result = db_query("SELECT * FROM mailbox WHERE username='$fUsername' AND domain='$fDomain'");
|
||||
if ($result['rows'] == 1) {
|
||||
$row = db_array($result['result']);
|
||||
$tName = $row['name'];
|
||||
$tQuota = $row['quota'] / $CONF['quota_multiplier'];
|
||||
$tActive = $row['active'];
|
||||
}
|
||||
} else {
|
||||
$tMessage = $LANG['Edit_mailbox_login_error'];
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("SELECT * FROM mailbox WHERE username=? AND domain=?");
|
||||
$sth->bindParam(1, $username, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
$mailbox_details = $sth->fetch();
|
||||
$name = $mailbox_details['name'];
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_mailbox_login_error'];
|
||||
}
|
||||
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/edit-mailbox.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
$pEdit_mailbox_password_text = $LANG['Edit_mailbox_password_text_error'];
|
||||
$pEdit_mailbox_quota_text = $LANG['Edit_mailbox_quota_text'];
|
||||
|
||||
$fUsername = escape_string($_GET['username']);
|
||||
$fUsername = strtolower($fUsername);
|
||||
$fDomain = escape_string($_GET['domain']);
|
||||
|
||||
$fPassword = escape_string($_POST['fPassword']);
|
||||
$fPassword2 = escape_string($_POST['fPassword2']);
|
||||
$fName = escape_string($_POST['fName']);
|
||||
if (isset($_POST['fQuota'])) $fQuota = escape_string($_POST['fQuota']);
|
||||
if (isset($_POST['fActive'])) $fActive = escape_string($_POST['fActive']);
|
||||
|
||||
if (!check_owner($SESSID_USERNAME, $fDomain)) {
|
||||
$error = 1;
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tActive = $fActive;
|
||||
$tMessage = $LANG['Edit_mailbox_domain_error'] . "$fDomain</font>";
|
||||
$username = strtolower(filter_input(INPUT_GET, 'username', FILTER_DEFAULT));
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
$password1 = filter_input(INPUT_POST, 'password1', FILTER_DEFAULT);
|
||||
$password2 = filter_input(INPUT_POST, 'password2', FILTER_DEFAULT);
|
||||
$name = filter_input(INPUT_POST, 'name', FILTER_DEFAULT);
|
||||
|
||||
if ($password1 != $password2) {
|
||||
$message = $LANG['Edit_mailbox_password_text_error'];
|
||||
}
|
||||
|
||||
if ($fPassword != $fPassword2) {
|
||||
$error = 1;
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tActive = $fActive;
|
||||
$pEdit_mailbox_password_text = $LANG['Edit_mailbox_password_text_error'];
|
||||
if (empty($message) && isset($domain_key) && !empty($password1)) {
|
||||
$hashed = bcrypt($password1);
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("UPDATE mailbox SET password=?,name=?,modified=NOW() WHERE username=? AND domain=?");
|
||||
$sth->bindParam(1, $hashed, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $name, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $username, PDO::PARAM_STR);
|
||||
$sth->bindParam(4, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_mailbox_result_error'];
|
||||
}
|
||||
}
|
||||
|
||||
if ($CONF['quota'] == "YES") {
|
||||
if (!check_quota($fQuota, $fDomain)) {
|
||||
$error = 1;
|
||||
$tName = $fName;
|
||||
$tQuota = $fQuota;
|
||||
$tActive = $fActive;
|
||||
$pEdit_mailbox_quota_text = $LANG['Edit_mailbox_quota_text_error'];
|
||||
}
|
||||
if (empty($message) && isset($domain_key)) {
|
||||
try {
|
||||
$dbh = connect_db();
|
||||
$sth = $dbh->prepare("UPDATE mailbox SET name=?,modified=NOW() WHERE username=? AND domain=?");
|
||||
$sth->bindParam(1, $name, PDO::PARAM_STR);
|
||||
$sth->bindParam(2, $username, PDO::PARAM_STR);
|
||||
$sth->bindParam(3, $domain, PDO::PARAM_STR);
|
||||
$sth->execute();
|
||||
logging($admin, $domain, "edit mailbox", $username);
|
||||
header("Location: list-virtual.php?domain=$domain");
|
||||
} catch(PDOException $e) {
|
||||
$message = $LANG['Edit_mailbox_result_error'];
|
||||
}
|
||||
}
|
||||
|
||||
if ($error != 1) {
|
||||
if (!empty($fQuota)) {
|
||||
$quota = $fQuota * $CONF['quota_multiplier'];
|
||||
} else {
|
||||
$quota = 0;
|
||||
}
|
||||
|
||||
if ($fActive == "on") {
|
||||
$fActive = 1;
|
||||
} else {
|
||||
$fActive = 0;
|
||||
}
|
||||
|
||||
if (empty($fPassword) and empty($fPassword2)) {
|
||||
$result = db_query("UPDATE mailbox SET name='$fName',quota='$quota',modified=NOW(),active='$fActive' WHERE username='$fUsername' AND domain='$fDomain'");
|
||||
} else {
|
||||
$password = pacrypt($fPassword);
|
||||
$result = db_query("UPDATE mailbox SET password='$password',name='$fName',quota='$quota',modified=NOW(),active='$fActive',scheme='' WHERE username='$fUsername' AND domain='$fDomain'");
|
||||
}
|
||||
|
||||
if ($result['rows'] != 1) {
|
||||
$tMessage = $LANG['Edit_mailbox_result_error'];
|
||||
} else {
|
||||
db_log($SESSID_USERNAME, $fDomain, "edit mailbox", $fUsername);
|
||||
|
||||
header("Location: overview.php?domain=$fDomain");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
include("./templates/header.tpl");
|
||||
include("./templates/menu.tpl");
|
||||
include("./templates/edit-mailbox.tpl");
|
||||
include("./templates/footer.tpl");
|
||||
}
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/edit-mailbox.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
<?php
|
||||
//
|
||||
// OpenSMTPD Admin
|
||||
// by Mischa Peters <mischa at high5 dot nl>
|
||||
// Copyright (c) 2022 High5!
|
||||
// License Info: LICENSE.TXT
|
||||
//
|
||||
// File: list-domains.php
|
||||
//
|
||||
// Template File: list-domains.tpl
|
||||
//
|
||||
// Template variables:
|
||||
//
|
||||
// list_domains
|
||||
//
|
||||
// GET / POST variables:
|
||||
//
|
||||
// -none-
|
||||
//
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/list-domains.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
|
@ -1,43 +0,0 @@
|
|||
<?php
|
||||
//
|
||||
// OpenSMTPD Admin
|
||||
// by Mischa Peters <mischa at high5 dot nl>
|
||||
// Copyright (c) 2022 High5!
|
||||
// License Info: LICENSE.TXT
|
||||
//
|
||||
// File: list-virtual.php
|
||||
//
|
||||
// Template File: list-virtual.tpl
|
||||
//
|
||||
// Template Variables:
|
||||
//
|
||||
// list_alias
|
||||
// list_mailbox
|
||||
//
|
||||
// Form POST \ GET Variables:
|
||||
//
|
||||
// domain
|
||||
// offset
|
||||
//
|
||||
require_once './functions.inc.php';
|
||||
include './languages/' . check_language() . '.lang';
|
||||
|
||||
$SESSID_USERNAME = check_session();
|
||||
$list_domains = list_domains($SESSID_USERNAME);
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
||||
$offset = filter_input(INPUT_GET, 'offset', FILTER_VALIDATE_INT) ?? '0';
|
||||
$limit = PAGE_SIZE;
|
||||
$domain = filter_input(INPUT_GET, 'domain', FILTER_VALIDATE_DOMAIN);
|
||||
if (in_array($domain, array_column($list_domains, 'domain'))) {
|
||||
$domain_key = array_search($domain, array_column($list_domains, 'domain'));
|
||||
$list_alias = list_aliases($domain, $offset, $limit);
|
||||
$list_mailbox = list_mailboxes($domain, $offset, $limit);
|
||||
}
|
||||
}
|
||||
|
||||
include './templates/header.tpl';
|
||||
include './templates/menu.tpl';
|
||||
include './templates/list-virtuals.tpl';
|
||||
include './templates/footer.tpl';
|
||||
?>
|
|
@ -0,0 +1,28 @@
|
|||
<div id="overview">
|
||||
<form name="search" method="post" action="search.php">
|
||||
Search: <input type="textbox" name="search" size="25">
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
echo "<table id=\"overview_table\">\n";
|
||||
echo " <tr>\n";
|
||||
echo " <td colspan=\"5\"><h3>".$LANG['Overview_title']."</h3></td>";
|
||||
echo " </tr>";
|
||||
echo " <tr class=\"header\">\n";
|
||||
echo " <td>" . $LANG['Overview_get_domain'] . "</td>\n";
|
||||
echo " <td>" . $LANG['Overview_get_aliases'] . "</td>\n";
|
||||
echo " <td>" . $LANG['Overview_get_mailboxes'] . "</td>\n";
|
||||
echo " </tr>\n";
|
||||
foreach ($list_domains as $row) {
|
||||
if ($row['aliases'] == 0) $row['aliases'] = $LANG['Overview_unlimited'];
|
||||
if ($row['mailboxes'] == 0) $row['mailboxes'] = $LANG['Overview_unlimited'];
|
||||
if ($row['aliases'] < 0) $row['aliases'] = $LANG['Overview_disabled'];
|
||||
if ($row['mailboxes'] < 0) $row['mailboxes'] = $LANG['Overview_disabled'];
|
||||
echo " <tr class=\"hilightoff\" onMouseOver=\"className='hilighton';\" onMouseOut=\"className='hilightoff';\">\n";
|
||||
echo " <td><a href=\"list-virtual.php?domain=" . $row['domain'] . "\">" . $row['domain'] . "</a></td>\n";
|
||||
echo " <td>" . $row['alias_count'] . " / " . $row['aliases'] . "</td>\n";
|
||||
echo " <td>" . $row['mailbox_count'] . " / " . $row['mailboxes'] . "</td>\n";
|
||||
echo " </tr>\n";
|
||||
}
|
||||
echo "</table>\n";
|
||||
?>
|
|
@ -19,7 +19,7 @@ foreach ($list_domains as $row) {
|
|||
if ($row['aliases'] < 0) $row['aliases'] = $LANG['Overview_disabled'];
|
||||
if ($row['mailboxes'] < 0) $row['mailboxes'] = $LANG['Overview_disabled'];
|
||||
echo " <tr class=\"hilightoff\" onMouseOver=\"className='hilighton';\" onMouseOut=\"className='hilightoff';\">\n";
|
||||
echo " <td><a href=\"list-virtuals.php?domain=" . $row['domain'] . "\">" . $row['domain'] . "</a></td>\n";
|
||||
echo " <td><a href=\"list-virtual.php?domain=" . $row['domain'] . "\">" . $row['domain'] . "</a></td>\n";
|
||||
echo " <td>" . $row['alias_count'] . " / " . $row['aliases'] . "</td>\n";
|
||||
echo " <td>" . $row['mailbox_count'] . " / " . $row['mailboxes'] . "</td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div id="menu">
|
||||
<ul>
|
||||
<li><a target="_top" href="list-domains.php"><?php echo $LANG['Menu_overview']; ?></a></li>
|
||||
<li><a target="_top" href="list-domain.php"><?php echo $LANG['Menu_overview']; ?></a></li>
|
||||
<li><a target="_top" href="add-alias.php<?php if (isset($domain)) echo '?domain=' . $domain; ?>"><?php echo $LANG['Menu_create_alias']; ?></a></li>
|
||||
<li><a target="_top" href="add-mailbox.php<?php if (isset($domain)) echo '?domain=' . $domain; ?>"><?php echo $LANG['Menu_create_mailbox']; ?></a></li>
|
||||
<li><a target="_top" href="sendmail.php"><?php echo $LANG['Menu_sendmail']; ?></a></li>
|
||||
|
|
Loading…
Reference in New Issue