Commit Diff


commit - 4db75ba3287381df26d2e832b750899e872fe8a4
commit + 080e0cc016373d5bb2406fa579f0bd69ee593192
blob - dcdace0eae9e51aeb8cb0b03da76a13e71d351e9
blob + fd9950701378ce98d0a59619f098c6e6df9b539e
--- README.md
+++ README.md
@@ -10,6 +10,7 @@ Database needed to use SQL with OpenSMTPD
 	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
@@ -26,12 +26,10 @@ require_once './functions.inc.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);
 }
@@ -71,7 +69,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
 			$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
@@ -28,12 +28,10 @@ require_once './functions.inc.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);
 }
@@ -90,7 +88,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
 			$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
@@ -28,9 +28,9 @@ require_once './functions.inc.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
@@ -22,9 +22,9 @@ include './languages/' . check_language() . '.lang';
 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
@@ -23,6 +23,9 @@ define('DB_NAME', '');
 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
@@ -25,7 +25,6 @@ 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") {
         $table = filter_input(INPUT_GET, 'table', FILTER_DEFAULT);
@@ -44,7 +43,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
 			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) {
@@ -67,7 +66,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
 			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
@@ -29,9 +29,9 @@ require_once './functions.inc.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
@@ -24,10 +24,9 @@ require_once './functions.inc.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 {
@@ -87,7 +86,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
 			$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
@@ -26,10 +26,9 @@ require_once './functions.inc.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 {
@@ -93,7 +92,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
 			$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
@@ -43,9 +43,14 @@ function check_session($session = "sessid") {
 	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
@@ -20,10 +20,14 @@ $LANG['Login_login_users'] = 'Users click here to logi
 
 $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';
 
@@ -131,38 +135,12 @@ $LANG['Sendmail_button'] = 'Send Message';
 $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
@@ -21,18 +21,17 @@ require './functions.inc.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
@@ -21,11 +21,11 @@ require_once './functions.inc.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
@@ -23,9 +23,9 @@ require_once './functions.inc.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
@@ -28,7 +28,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
 
 	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);
@@ -45,7 +45,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
 	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
@@ -23,10 +23,10 @@ require_once './functions.inc.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
@@ -22,9 +22,9 @@ require_once './functions.inc.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
@@ -26,10 +26,10 @@ require_once './functions.inc.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
@@ -1,5 +1,5 @@
 <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
@@ -27,7 +27,7 @@ if (count($list_domains) > 0) {
 	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\">&nbsp;</td>";
+	if ($ROLE == ADMIN_ROLE) echo "<td colspan=\"2\">&nbsp;</td>";
 	echo "</tr>";
 	foreach ($list_domains as $row) {
 		if ($row['aliases'] == 0) $row['aliases'] = $LANG['List_domain_unlimited'];
@@ -38,8 +38,8 @@ if (count($list_domains) > 0) {
 		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
@@ -0,0 +1,22 @@
+<?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\">&nbsp;</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
@@ -3,16 +3,15 @@
 	<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
@@ -21,10 +21,10 @@ require_once './functions.inc.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 {