commit - 4db75ba3287381df26d2e832b750899e872fe8a4
commit + 080e0cc016373d5bb2406fa579f0bd69ee593192
blob - dcdace0eae9e51aeb8cb0b03da76a13e71d351e9
blob + fd9950701378ce98d0a59619f098c6e6df9b539e
--- README.md
+++ README.md
CREATE TABLE `admin` (
`username` varchar(255) NOT NULL DEFAULT '',
`password` varchar(255) NOT NULL DEFAULT '',
+ `role` varchar(32) DEFAULT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`username`),
blob - 37ff751c4268605340fecf4ee44632f4d30909d8
blob + 39547c7f88215aa153def2ebede075d9370fdf21
--- add-alias.php
+++ add-alias.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
- $list_admins = list_admins();
} else {
$list_domains = list_domains($SESSID_USERNAME);
}
$sth->bindParam(2, $goto, PDO::PARAM_STR);
$sth->bindParam(3, $domain, PDO::PARAM_STR);
$sth->execute();
- logging($admin, $domain, $LANG['Logging_alias_add'], "$from -> $goto");
+ logging($SESSID_USERNAME, $domain, $LANG['Logging_alias_add'], "$from -> $goto");
$message = $LANG['Add_alias_result_succes'] . "<br />($from -> $goto)</br />";
$address = '';
$goto = '';
blob - 028b6bad9e7ad99f4c0795c5fb9a8386743505c9
blob + e059c12ec823c893cfd7376b9ab02a4ea5672635
--- add-mailbox.php
+++ add-mailbox.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
- $list_admins = list_admins();
} else {
$list_domains = list_domains($SESSID_USERNAME);
}
$sth->bindParam(4, $maildir, PDO::PARAM_STR);
$sth->bindParam(5, $domain, PDO::PARAM_STR);
$sth->execute();
- logging($admin, $domain, $LANG['Logging_mailbox_add'], "$from");
+ logging($SESSID_USERNAME, $domain, $LANG['Logging_mailbox_add'], "$from");
$message = $LANG['Add_mailbox_result_succes'] . "<br />($from)";
$username = '';
$name = '';
blob - 4e76234c0e2295b006a2c38e2145078e74237552
blob + 9a523ce84d9cf9ccdd5dfb1644a8ba4ad0e4ee02
--- admin.php
+++ admin.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
+$ROLE = check_role();
-if ($PERMISSIONS != ADMIN_RIGHTS) {
+if ($ROLE != ADMIN_ROLE) {
header("Location: list-domain.php");
die();;
}
blob - d9546e3965c2045cc96af93609b3027237514033
blob + 35a6e2eea2f3a92f1f80d75508607c9c7164816d
--- backup.php
+++ backup.php
date_default_timezone_set('Europe/Amsterdam');
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
+$ROLE = check_role();
-if ($PERMISSIONS != ADMIN_RIGHTS) {
+if ($ROLE != ADMIN_ROLE) {
header("Location: list-domain.php");
die();;
}
blob - 45c60f897ee483706c2e950959fc499343d81c95
blob + d8500674a780d38362bc9b91687d976f4f3d07bf
--- conf.php-sample
+++ conf.php-sample
define('ALIASES', '10');
define('MAILBOXES', '10');
+// Mail Admin Administrator tag
+define('ADMIN_RIGHTS', 'ADMINISTRATOR');
+
// Expose virtual mail construct 'vmail' to admins.
define('ALIAS_CONTROL', 'NO');
blob - 1634808ae9bf395f90353405e05e729d87e372fc
blob + db9b622e6306097906e2d207e02519ce49f4422b
--- delete.php
+++ delete.php
$SESSID_USERNAME = check_session();
$list_domains = list_domains($SESSID_USERNAME);
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
if ($_SERVER['REQUEST_METHOD'] == "GET") {
$table = filter_input(INPUT_GET, 'table', FILTER_DEFAULT);
if ($sth->rowCount() != 1) {
throw new RuntimeException('alias');
}
- logging($admin, $domain, $LANG['Logging_alias_delete'], $delete);
+ logging($SESSID_USERNAME, $domain, $LANG['Logging_alias_delete'], $delete);
header("Location: list-virtual.php?domain=$domain");
} catch (RuntimeException $e) {
if ($sth->rowCount() != 1) {
throw new RuntimeException('mailbox');
}
- logging($admin, $domain, $LANG['Logging_mailbox_delete'], $delete);
+ logging($SESSID_USERNAME, $domain, $LANG['Logging_mailbox_delete'], $delete);
$sth = $dbh->prepare("DELETE FROM vacation WHERE email=? AND domain=?");
$sth->bindParam(1, $delete, PDO::PARAM_STR);
blob - 77985b2b3e6393be0b6931f43b1b97a9e63d8e1e
blob + a88ed48aa10baf029f17a38f8dfada2550cd4cbf
--- domain.php
+++ domain.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
+$ROLE = check_role();
-if ($PERMISSIONS != ADMIN_RIGHTS) {
+if ($ROLE != ADMIN_ROLE) {
header("Location: list-domain.php");
die();
}
blob - bb066d9a8963032a87c43a9878e759c41e88046c
blob + 6b69dacc63bf948dcdce488dc8b9753f85952e73
--- edit-alias.php
+++ edit-alias.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
$list_admins = list_admins();
} else {
$sth->bindParam(2, $address, PDO::PARAM_STR);
$sth->bindParam(3, $domain, PDO::PARAM_STR);
$sth->execute();
- logging($admin, $domain, $LANG['Logging_alias_edit'], "$address -> $goto");
+ logging($SESSID_USERNAME, $domain, $LANG['Logging_alias_edit'], "$address -> $goto");
header("Location: list-virtual.php?domain=$domain");
} catch(PDOException $e) {
$message = $LANG['Edit_alias_result_error'];
blob - 680e2933fd354867f4b1bac8059719b2c0476c3a
blob + 594f5d0caa10e3661c0a590d22a774625477e974
--- edit-mailbox.php
+++ edit-mailbox.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
$list_admins = list_admins();
} else {
$sth->bindParam(2, $username, PDO::PARAM_STR);
$sth->bindParam(3, $domain, PDO::PARAM_STR);
$sth->execute();
- logging($admin, $domain, $LANG['Logging_mailbox_edit'], $username);
+ logging($SESSID_USERNAME, $domain, $LANG['Logging_mailbox_edit'], $username);
header("Location: list-virtual.php?domain=$domain");
} catch(PDOException $e) {
$message = $LANG['Edit_mailbox_result_error'];
blob - a8b8fec1f1b3d19d09720cc718be25cc784bb564
blob + fb06cfd1403c0d860e631da5e90edfe7eb06fd19
--- functions.inc.php
+++ functions.inc.php
return $_SESSION[$session]['username'];
}
-function check_permissions($session = "sessid") {
- if (!empty($_SESSION[$session]['rights'])) {
- return $_SESSION[$session]['rights'];
+//
+// check_role
+// Action: Check which role is assighed
+// Call: check_role()
+//
+function check_role($session = "sessid") {
+ if (!empty($_SESSION[$session]['role'])) {
+ return $_SESSION[$session]['role'];
}
}
blob - d8bd600cb8fad464b326fbd13fb589c1d92e5ccb
blob + a08a12296504636c4e1d5414ad3177ef25467dea
--- languages/en.lang
+++ languages/en.lang
$LANG['Menu_list_domain'] = 'List Domains';
$LANG['Menu_list_virtual'] = 'List Virtuals';
-$LANG['Menu_add_alias'] = 'Add Alias';
-$LANG['Menu_add_mailbox'] = 'Add Mailbox';
+$LANG['Menu_list_admin'] = 'List Admins';
+$LANG['Menu_backup'] = 'Backup';
+$LANG['Menu_add_domain'] = 'Add Domain';
+$LANG['Menu_add_admin'] = 'Add Admin';
$LANG['Menu_sendmail'] = 'Send Email';
$LANG['Menu_password'] = 'Password';
+$LANG['Menu_add_alias'] = 'Add Alias';
+$LANG['Menu_add_mailbox'] = 'Add Mailbox';
$LANG['Menu_viewlog'] = 'View Log';
$LANG['Menu_logout'] = 'Logout';
$LANG['Sendmail_result_error'] = '<span class="error_msg">Unable to send message.</span>';
$LANG['Sendmail_result_succes'] = 'The mailbox has been created.';
-$LANG['AdminMenu_list_domain'] = 'List Domains';
-$LANG['AdminMenu_list_admin'] = 'List Admins';
-$LANG['AdminMenu_viewlog'] = 'View Log';
-$LANG['AdminMenu_backup'] = 'Backup';
-$LANG['AdminMenu_create_domain_admins'] = 'Domain Admins';
-$LANG['AdminMenu_create_domain'] = 'Add Domain';
-$LANG['AdminMenu_create_admin'] = 'Add Admin';
-$LANG['AdminMenu_create_alias'] = 'Add Alias';
-$LANG['AdminMenu_create_mailbox'] = 'Add Mailbox';
-
$LANG['AdminList_admin_domain'] = 'Domain';
$LANG['AdminList_admin_username'] = 'Admin';
$LANG['AdminList_admin_count'] = 'Domains';
$LANG['AdminList_admin_modified'] = 'Last Modified';
+$LANG['AdminList_admin_active'] = 'Active';
-$LANG['AdminList_domain_domain'] = 'Domain';
-$LANG['AdminList_domain_description'] = 'Description';
-$LANG['AdminList_domain_aliases'] = 'Aliases';
-$LANG['AdminList_domain_mailboxes'] = 'Mailboxes';
-$LANG['AdminList_domain_modified'] = 'Last Modified';
-
-$LANG['AdminList_virtual_button'] = 'Go';
-$LANG['AdminList_virtual_welcome'] = 'Overview for ';
-$LANG['AdminList_virtual_alias_alias_count'] = 'Aliases';
-$LANG['AdminList_virtual_alias_mailbox_count'] = 'Mailboxes';
-$LANG['AdminList_virtual_alias_address'] = 'From';
-$LANG['AdminList_virtual_alias_goto'] = 'To';
-$LANG['AdminList_virtual_alias_modified'] = 'Last Modified';
-$LANG['AdminList_virtual_mailbox_username'] = 'Email';
-$LANG['AdminList_virtual_mailbox_name'] = 'Name';
-$LANG['AdminList_virtual_mailbox_modified'] = 'Last Modified';
-
$LANG['AdminAdd_domain_welcome'] = 'Add a new domain';
$LANG['AdminAdd_domain_domain'] = 'Domain';
$LANG['AdminAdd_domain_domain_text_error'] = '<span class="error_msg">The domain already exists.</span>';
blob - 161567f71683fd36971715a34e2016ebe5e0f9c2
blob + a1e2fbd9e523de3496398f741940118b07a6db3a
--- list-admin.php
+++ list-admin.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
$list_admins = array();
if ($_SERVER['REQUEST_METHOD'] == "GET") {
- if ($PERMISSIONS == ADMIN_RIGHTS) {
+ if ($ROLE == ADMIN_ROLE) {
$list_admins = list_admins();
}
}
include './templates/header.tpl';
include './templates/menu.tpl';
-include './templates/admin_list-admin.tpl';
+include './templates/list-admin.tpl';
include './templates/footer.tpl';
?>
blob - 19cd5aef08bf48ad2c93b706bfc7fa916bc5c5cd
blob + 1726709d16633966c14977a94df337041c1a9087
--- list-domain.php
+++ list-domain.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
+$ROLE = check_role();
if ($_SERVER['REQUEST_METHOD'] == "GET") {
$username = filter_input(INPUT_GET, 'username', FILTER_VALIDATE_EMAIL);
- if ($PERMISSIONS == ADMIN_RIGHTS) {
+ if ($ROLE == ADMIN_ROLE) {
$list_admins = list_admins();
if (empty($username)) {
$list_domains = list_domains();
blob - 6ec0b7d3566f22465092825dd35c3ffaa9611a12
blob + 071a35ff600c578437ddb5a7bdeaa618ea668655
--- list-virtual.php
+++ list-virtual.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
+$ROLE = check_role();
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
} else {
$list_domains = list_domains($SESSID_USERNAME);
blob - ad4aeadcf5cc1e1200f7e49441edce11405dcb9a
blob + cd9aec8316dda5c5ead72be1545f432d1868f007
--- login.php
+++ login.php
if (!empty($username) && !empty($password)) {
$dbh = pdo_connect();
- $sth = $dbh->prepare("SELECT password,rights FROM admin WHERE username=?");
+ $sth = $dbh->prepare("SELECT password,role FROM admin WHERE username=?");
$sth->bindParam(1, $username, PDO::PARAM_STR);
$sth->execute();
$row = $sth->fetch(PDO::FETCH_ASSOC);
if (empty($message)) {
session_start();
$_SESSION['sessid']['username'] = $username;
- $_SESSION['sessid']['rights'] = $row['rights'];
+ $_SESSION['sessid']['role'] = $row['role'];
header("Location: list-domain.php");
exit;
}
blob - a597172c03bf95525956d0b877448bffcd79f9ce
blob + d399e4ea572433b60e81a8ca67036bb642480247
--- password.php
+++ password.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
+$SESSID_USERNAME = $SESSID_USERNAME ?? ADMIN_EMAIL;
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
$list_admins = list_admins();
} else {
blob - 51dafff050d3c5f25d6d11d8600ba77a2a61748a
blob + 3e1a088a89faaa72f03b9db0ae4fa4e14c0b9a86
--- search.php
+++ search.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
+$ROLE = check_role();
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
} else {
$list_domains = list_domains($SESSID_USERNAME);
blob - a6ba63080a514d06ea46613c42df70513c1a60ec
blob + 900ade84db3df5454f9ac88f29d67c50e9c7e32f
--- sendmail.php
+++ sendmail.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
+$SESSID_USERNAME = $SESSID_USERNAME ?? ADMIN_EMAIL;
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
$list_admins = list_admins();
} else {
blob - f3f1a1b3c0c7d75a94baa051249b2b82ef4ad35f
blob + 57a1f59e44460c31451209912ad52e1faea8c021
--- templates/list-domain.tpl
+++ templates/list-domain.tpl
<div id="overview">
-<?php if ($PERMISSIONS == ADMIN_RIGHTS) { ?>
+<?php if ($ROLE == ADMIN_ROLE) { ?>
<form name="list_domain" method="get">
<select name="username" onChange="this.form.submit()";>
<?php
echo "<td>" . $LANG['List_domain_aliases'] . "</td>";
echo "<td>" . $LANG['List_domain_mailboxes'] . "</td>";
echo "<td>" . $LANG['List_modified'] . "</td>";
- if ($PERMISSIONS == ADMIN_RIGHTS) echo "<td colspan=\"2\"> </td>";
+ if ($ROLE == ADMIN_ROLE) echo "<td colspan=\"2\"> </td>";
echo "</tr>";
foreach ($list_domains as $row) {
if ($row['aliases'] == 0) $row['aliases'] = $LANG['List_domain_unlimited'];
echo "<td>" . $row['alias_count'] . " / " . $row['aliases'] . "</td>";
echo "<td>" . $row['mailbox_count'] . " / " . $row['mailboxes'] . "</td>";
echo "<td>" . $row['modified'] . "</td>";
- if ($PERMISSIONS == ADMIN_RIGHTS) echo "<td><a href=\"domain.php?action=edit&domain=" . $row['domain'] . "\">" . $LANG['edit'] . "</a></td>";
- if ($PERMISSIONS == ADMIN_RIGHTS) echo "<td><a href=\"delete.php?table=domain&domain=" . $row['domain'] . "\" onclick=\"return confirm ('" . $LANG['confirm_domain'] . $LANG['List_domain_domain'] . ": " . $row['domain'] . "')\">" . $LANG['del'] . "</a></td>";
+ if ($ROLE == ADMIN_ROLE) echo "<td><a href=\"domain.php?action=edit&domain=" . $row['domain'] . "\">" . $LANG['edit'] . "</a></td>";
+ if ($ROLE == ADMIN_ROLE) echo "<td><a href=\"delete.php?table=domain&domain=" . $row['domain'] . "\" onclick=\"return confirm ('" . $LANG['confirm_domain'] . $LANG['List_domain_domain'] . ": " . $row['domain'] . "')\">" . $LANG['del'] . "</a></td>";
echo " </tr>";
}
echo "</table>";
blob - /dev/null
blob + 13b97de50c37227e1f44b1c2e3726b23565f1694 (mode 644)
--- /dev/null
+++ templates/list-admin.tpl
+<?php
+if (count($list_admins) > 0) {
+ echo "<table id=\"admin_table\">";
+ echo "<tr class=\"header\">";
+ echo "<td>" . $LANG['AdminList_admin_username'] . "</td>";
+ echo "<td>" . $LANG['AdminList_admin_count'] . "</td>";
+ echo "<td>" . $LANG['List_modified'] . "</td>";
+ echo "<td colspan=\"2\"> </td>";
+ echo "</tr>";
+
+ foreach ($list_admins as $row) {
+ echo "<tr class=\"hilightoff\" onMouseOver=\"className='hilighton';\" onMouseOut=\"className='hilightoff';\">";
+ echo "<td><a href=\"list-domain.php?username=" . $row['username'] . "\">" . $row['username'] . "</a></td>";
+ echo "<td>" . $row['domain_count'] . "</td>";
+ echo "<td>" . $row['modified'] . "</td>";
+ echo "<td><a href=\"edit-admin.php?username=" . $row['username'] . "\">" . $LANG['edit'] . "</a></td>";
+ echo "<td><a href=\"delete.php?table=admin&where=username&delete=" . $row['username'] . "\" onclick=\"return confirm ('" . $LANG['confirm'] . $LANG['AdminList_admin_username'] . ": " . $row['username'] . "')\">" . $LANG['del'] . "</a></td>";
+ echo "</tr>";
+ }
+ echo "</table>";
+}
+?>
blob - 09fed86fc168becfac0e9280d12578c30e748c76
blob + b6541d9e6d5af1f4f55536b35577de69048eacbd
--- templates/menu.tpl
+++ templates/menu.tpl
<li><a target="_top" href="list-domain.php"><?php echo $LANG['Menu_list_domain']; ?></a></li>
<li><a target="_top" href="list-virtual.php"><?php echo $LANG['Menu_list_virtual']; ?></a></li>
- <?php if ($PERMISSIONS == ADMIN_RIGHTS) { ?>
- <li><a target="_top" href="list-admin.php"><?php echo $LANG['AdminMenu_list_admin']; ?></a></li>
- <li><a target="_top" href="backup.php"><?php echo $LANG['AdminMenu_backup']; ?></a></li>
- <li><a target="_top" href="domain.php"><?php echo $LANG['AdminMenu_create_domain']; ?></a></li>
- <li><a target="_top" href="admin.php"><?php echo $LANG['AdminMenu_create_admin']; ?></a></li>
+ <?php if ($ROLE == ADMIN_ROLE) { ?>
+ <li><a target="_top" href="list-admin.php"><?php echo $LANG['Menu_list_admin']; ?></a></li>
+ <li><a target="_top" href="backup.php"><?php echo $LANG['Menu_backup']; ?></a></li>
+ <li><a target="_top" href="domain.php"><?php echo $LANG['Menu_add_domain']; ?></a></li>
+ <li><a target="_top" href="admin.php"><?php echo $LANG['Menu_add_admin']; ?></a></li>
<?php } else {?>
<li><a target="_top" href="sendmail.php"><?php echo $LANG['Menu_sendmail']; ?></a></li>
- <li><a target="_top" href="password.php"><?php echo $LANG['Menu_password']; ?></a></li>
<?php } ?>
-
+ <li><a target="_top" href="password.php"><?php echo $LANG['Menu_password']; ?></a></li>
<li><a target="_top" href="add-alias.php<?php if (isset($domain)) echo '?domain=' . $domain; ?>"><?php echo $LANG['Menu_add_alias']; ?></a></li>
<li><a target="_top" href="add-mailbox.php<?php if (isset($domain)) echo '?domain=' . $domain; ?>"><?php echo $LANG['Menu_add_mailbox']; ?></a></li>
<li><a target="_top" href="viewlog.php"><?php echo $LANG['Menu_viewlog']; ?></a></li>
blob - 18a826bbd612cdef1f42fe985af62fe5ff0aa57e
blob + fa1843e1b98ce878e2397aa6d069c129e5fb3ea7
--- viewlog.php
+++ viewlog.php
include './languages/' . check_language() . '.lang';
$SESSID_USERNAME = check_session();
-$PERMISSIONS = check_permissions();
-$admin = $SESSID_USERNAME ?? ADMIN_EMAIL;
+$ROLE = check_role();
+$SESSID_USERNAME = $SESSID_USERNAME ?? ADMIN_EMAIL;
-if ($PERMISSIONS == ADMIN_RIGHTS) {
+if ($ROLE == ADMIN_ROLE) {
$list_domains = list_domains();
$list_admins = list_admins();
} else {