summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2011-08-11 14:02:21 -0400
committerjim-p <jimp@pfsense.org>2011-08-11 14:02:21 -0400
commit3f1097004e12701b6ce6712a0f4702089baa5e53 (patch)
tree4a748c83fb0615a3ab38196f7eeaf6c9c2dcc2b4
parent5457129fc90bc0275ef7d5db6608b309907a15f6 (diff)
downloadpfsense-3f1097004e12701b6ce6712a0f4702089baa5e53.zip
pfsense-3f1097004e12701b6ce6712a0f4702089baa5e53.tar.gz
Sort user privileges so dashboard/index.php come first, so if a user has those permissions, they get redirected there first and not to another page.
-rw-r--r--etc/inc/priv.inc9
-rw-r--r--usr/local/www/system_usermanager_addprivs.php1
2 files changed, 10 insertions, 0 deletions
diff --git a/etc/inc/priv.inc b/etc/inc/priv.inc
index 16dd112..4321c44 100644
--- a/etc/inc/priv.inc
+++ b/etc/inc/priv.inc
@@ -287,4 +287,13 @@ function getAllowedPages($username) {
return $allowed_pages;
}
+function sort_user_privs($privs) {
+ // Privileges to place first, to redirect properly.
+ $priority_privs = array("page-dashboard-all", "page-system-login/logout");
+
+ $fprivs = array_intersect($privs, $priority_privs);
+ $sprivs = array_diff($privs, $priority_privs);
+
+ return array_merge($fprivs, $sprivs);
+}
?> \ No newline at end of file
diff --git a/usr/local/www/system_usermanager_addprivs.php b/usr/local/www/system_usermanager_addprivs.php
index 6716036..edfb2ad 100644
--- a/usr/local/www/system_usermanager_addprivs.php
+++ b/usr/local/www/system_usermanager_addprivs.php
@@ -101,6 +101,7 @@ if ($_POST) {
else
$a_user['priv'] = array_merge($a_user['priv'], $pconfig['sysprivs']);
+ $a_user['priv'] = sort_user_privs($a_user['priv']);
admin_users_sort();
local_user_set($a_user);
$retval = write_config();
OpenPOWER on IntegriCloud