summaryrefslogtreecommitdiffstats
path: root/src/usr/local/www/system_usermanager.php
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@inf.org>2016-06-23 12:23:16 +0930
committerPhil Davis <phil.davis@inf.org>2016-06-23 12:23:16 +0930
commit8bab524e06831489a882e7d65e9cbd52d39febbd (patch)
tree4db022bc09b108467368142205e75bf372136d2f /src/usr/local/www/system_usermanager.php
parent9a17d2938055e5d12f36f9efc332548a780c464f (diff)
downloadpfsense-8bab524e06831489a882e7d65e9cbd52d39febbd.zip
pfsense-8bab524e06831489a882e7d65e9cbd52d39febbd.tar.gz
Feature #6388 custom GUI preference settings per user
Diffstat (limited to 'src/usr/local/www/system_usermanager.php')
-rw-r--r--src/usr/local/www/system_usermanager.php118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/usr/local/www/system_usermanager.php b/src/usr/local/www/system_usermanager.php
index 13b405d..c12b916 100644
--- a/src/usr/local/www/system_usermanager.php
+++ b/src/usr/local/www/system_usermanager.php
@@ -94,6 +94,17 @@ if (isset($id) && $a_user[$id]) {
$pconfig['usernamefld'] = $a_user[$id]['name'];
$pconfig['descr'] = $a_user[$id]['descr'];
$pconfig['expires'] = $a_user[$id]['expires'];
+ $pconfig['customsettings'] = isset($a_user[$id]['customsettings']);
+ $pconfig['webguicss'] = $a_user[$id]['webguicss'];
+ $pconfig['webguifixedmenu'] = $a_user[$id]['webguifixedmenu'];
+ $pconfig['webguihostnamemenu'] = $a_user[$id]['webguihostnamemenu'];
+ $pconfig['dashboardcolumns'] = $a_user[$id]['dashboardcolumns'];
+ $pconfig['dashboardavailablewidgetspanel'] = isset($a_user[$id]['dashboardavailablewidgetspanel']);
+ $pconfig['systemlogsfilterpanel'] = isset($a_user[$id]['systemlogsfilterpanel']);
+ $pconfig['systemlogsmanagelogpanel'] = isset($a_user[$id]['systemlogsmanagelogpanel']);
+ $pconfig['statusmonitoringsettingspanel'] = isset($a_user[$id]['statusmonitoringsettingspanel']);
+ $pconfig['webguileftcolumnhyper'] = isset($a_user[$id]['webguileftcolumnhyper']);
+ $pconfig['pagenamefirst'] = isset($a_user[$id]['pagenamefirst']);
$pconfig['groups'] = local_user_get_groups($a_user[$id]);
$pconfig['utype'] = $a_user[$id]['scope'];
$pconfig['uid'] = $a_user[$id]['uid'];
@@ -330,6 +341,7 @@ if ($_POST['save']) {
$userent['name'] = $_POST['usernamefld'];
$userent['expires'] = $_POST['expires'];
+ $userent['dashboardcolumns'] = $_POST['dashboardcolumns'];
$userent['authorizedkeys'] = base64_encode($_POST['authorizedkeys']);
$userent['ipsecpsk'] = $_POST['ipsecpsk'];
@@ -339,6 +351,66 @@ if ($_POST['save']) {
unset($userent['disabled']);
}
+ if ($_POST['customsettings']) {
+ $userent['customsettings'] = true;
+ } else {
+ unset($userent['customsettings']);
+ }
+
+ if ($_POST['webguicss']) {
+ $userent['webguicss'] = $_POST['webguicss'];
+ } else {
+ unset($userent['webguicss']);
+ }
+
+ if ($_POST['webguifixedmenu']) {
+ $userent['webguifixedmenu'] = $_POST['webguifixedmenu'];
+ } else {
+ unset($userent['webguifixedmenu']);
+ }
+
+ if ($_POST['webguihostnamemenu']) {
+ $userent['webguihostnamemenu'] = $_POST['webguihostnamemenu'];
+ } else {
+ unset($userent['webguihostnamemenu']);
+ }
+
+ if ($_POST['dashboardavailablewidgetspanel']) {
+ $userent['dashboardavailablewidgetspanel'] = true;
+ } else {
+ unset($userent['dashboardavailablewidgetspanel']);
+ }
+
+ if ($_POST['systemlogsfilterpanel']) {
+ $userent['systemlogsfilterpanel'] = true;
+ } else {
+ unset($userent['systemlogsfilterpanel']);
+ }
+
+ if ($_POST['systemlogsmanagelogpanel']) {
+ $userent['systemlogsmanagelogpanel'] = true;
+ } else {
+ unset($userent['systemlogsmanagelogpanel']);
+ }
+
+ if ($_POST['statusmonitoringsettingspanel']) {
+ $userent['statusmonitoringsettingspanel'] = true;
+ } else {
+ unset($userent['statusmonitoringsettingspanel']);
+ }
+
+ if ($_POST['webguileftcolumnhyper']) {
+ $userent['webguileftcolumnhyper'] = true;
+ } else {
+ unset($userent['webguileftcolumnhyper']);
+ }
+
+ if ($_POST['pagenamefirst']) {
+ $userent['pagenamefirst'] = true;
+ } else {
+ unset($userent['pagenamefirst']);
+ }
+
if (isset($id) && $a_user[$id]) {
$a_user[$id] = $userent;
} else {
@@ -710,6 +782,15 @@ if ($act == "new" || $act == "edit" || $input_errors):
))->setHelp('Leave blank if the account shouldn\'t expire, otherwise enter '.
'the expiration date');
+ $section->addInput(new Form_Checkbox(
+ 'customsettings',
+ 'Custom Settings',
+ 'Use individual customized GUI options and dashboard layout for this user.',
+ $pconfig['customsettings']
+ ));
+
+ gen_user_settings_fields($section, $pconfig);
+
// ==== Group membership ==================================================
$group = new Form_Group('Group membership');
@@ -883,12 +964,48 @@ $section->addInput(new Form_Input(
$form->add($section);
print $form;
+
+$csswarning = sprintf(gettext("%sUser-created themes are unsupported, use at your own risk."), "<br />");
?>
<script type="text/javascript">
//<![CDATA[
events.push(function() {
+ function setcustomoptions() {
+ var adv = $('#customsettings').prop('checked');
+
+ hideInput('webguicss', !adv);
+ hideInput('webguifixedmenu', !adv);
+ hideInput('webguihostnamemenu', !adv);
+ hideInput('dashboardcolumns', !adv);
+ hideCheckbox('dashboardavailablewidgetspanel', !adv);
+ hideCheckbox('systemlogsfilterpanel', !adv);
+ hideCheckbox('systemlogsmanagelogpanel', !adv);
+ hideCheckbox('statusmonitoringsettingspanel', !adv);
+ hideCheckbox('webguileftcolumnhyper', !adv);
+ hideCheckbox('pagenamefirst', !adv);
+ }
+
+ // Handle displaying a warning message if a user-created theme is selected.
+ function setThemeWarning() {
+ if ($('#webguicss').val().startsWith("pfSense")) {
+ $('#csstxt').html("").addClass("text-default");
+ } else {
+ $('#csstxt').html("<?=$csswarning?>").addClass("text-danger");
+ }
+ }
+
+ $('#webguicss').change(function() {
+ setThemeWarning();
+ });
+
+ setThemeWarning();
+
// On click . .
+ $('#customsettings').click(function () {
+ setcustomoptions();
+ });
+
$("#movetodisabled").click(function() {
moveOptions($('[name="groups[]"] option'), $('[name="sysgroups[]"]'));
});
@@ -931,6 +1048,7 @@ events.push(function() {
hideClass('cert-options', true);
//hideInput('authorizedkeys', true);
hideCheckbox('showkey', true);
+ setcustomoptions();
// On submit mark all the user's groups as "selected"
$('form').submit(function() {
OpenPOWER on IntegriCloud