summaryrefslogtreecommitdiffstats
path: root/usr
diff options
context:
space:
mode:
authorRenato Botelho <renato.botelho@bluepex.com>2010-07-13 08:52:24 -0300
committerRenato Botelho <renato.botelho@bluepex.com>2010-07-13 08:52:24 -0300
commitef1de54580e67b6636f0a9688ee2284193403ab6 (patch)
tree36681ac7f7b53e2d0550369b880ab7480630fa06 /usr
parent12a489b3cac6377b37d16a6b941e3f4171566e07 (diff)
parent3e251b12903ea709b908d1cba30fe61cadbe2da3 (diff)
downloadpfsense-ef1de54580e67b6636f0a9688ee2284193403ab6.zip
pfsense-ef1de54580e67b6636f0a9688ee2284193403ab6.tar.gz
Merge remote branch 'mainline/master'
Diffstat (limited to 'usr')
-rw-r--r--usr/local/www/diag_smart.php436
-rwxr-xr-xusr/local/www/fbegin.inc1
-rwxr-xr-xusr/local/www/firewall_rules.php23
-rwxr-xr-xusr/local/www/guiconfig.inc64
-rw-r--r--usr/local/www/system_advanced_admin.php8
-rwxr-xr-xusr/local/www/system_firmware_auto.php7
-rwxr-xr-xusr/local/www/system_firmware_check.php7
-rw-r--r--usr/local/www/system_groupmanager.php8
-rw-r--r--usr/local/www/system_usermanager.php2
9 files changed, 547 insertions, 9 deletions
diff --git a/usr/local/www/diag_smart.php b/usr/local/www/diag_smart.php
new file mode 100644
index 0000000..47ec2b1
--- /dev/null
+++ b/usr/local/www/diag_smart.php
@@ -0,0 +1,436 @@
+<?php
+/*
+ Part of pfSense
+
+ Copyright (C) 2006, Eric Friesen
+ All rights reserved
+
+ Some modifications:
+ Copyright (C) 2010 - Jim Pingle
+*/
+
+require("guiconfig.inc");
+
+$pgtitle = array("Diagnostics", "S.M.A.R.T. Monitor Tools");
+$smartctl = "/usr/local/sbin/smartctl";
+$smartd = "/usr/local/sbin/smartd";
+$start_script = "/usr/local/etc/rc.d/smartd.sh";
+
+include("head.inc");
+?>
+
+<style>
+<!--
+
+input {
+ font-family: courier new, courier;
+ font-weight: normal;
+ font-size: 9pt;
+}
+
+pre {
+ border: 2px solid #435370;
+ background: #F0F0F0;
+ padding: 1em;
+ font-family: courier new, courier;
+ white-space: pre;
+ line-height: 10pt;
+ font-size: 10pt;
+}
+
+.label {
+ font-family: tahoma, verdana, arial, helvetica;
+ font-size: 11px;
+ font-weight: bold;
+}
+
+.button {
+ font-family: tahoma, verdana, arial, helvetica;
+ font-weight: bold;
+ font-size: 11px;
+}
+
+-->
+</style>
+</head>
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+
+<?php
+include("fbegin.inc");
+
+// Highlates the words "PASSED", "FAILED", and "WARNING".
+function add_colors($string)
+{
+ // To add words keep arrayes matched by numbers
+ $patterns[0] = '/PASSED/';
+ $patterns[1] = '/FAILED/';
+ $patterns[2] = '/Warning/';
+ $replacements[0] = '<b><font color="#00ff00">PASSED</font></b>';
+ $replacements[1] = '<b><font color="#ff0000">FAILED</font></b>';
+ $replacements[2] = '<font color="#ff0000">Warning</font>';
+ ksort($patterns);
+ ksort($replacements);
+ return preg_replace($patterns, $replacements, $string);
+}
+
+// Edits smartd.conf file, adds or removes email for failed disk reporting
+function update_email($email)
+{
+ // Did they pass an email?
+ if(!empty($email))
+ {
+ // Put it in the smartd.conf file
+ shell_exec("/usr/bin/sed -i old 's/^DEVICESCAN.*/DEVICESCAN -H -m " . $email . "/' /usr/local/etc/smartd.conf");
+ }
+ // Nope
+ else
+ {
+ // Remove email flags in smartd.conf
+ shell_exec("/usr/bin/sed -i old 's/^DEVICESCAN.*/DEVICESCAN/' /usr/local/etc/smartd.conf");
+ }
+}
+
+function smartmonctl($action)
+{
+ global $start_script;
+ shell_exec($start_script . $action);
+}
+
+// What page, aka. action is being wanted
+// If they "get" a page but don't pass all arguments, smartctl will throw an error
+$action = (isset($_POST['action']) ? $_POST['action'] : $_GET['action']);
+switch($action)
+{
+ // Testing devices
+ case 'test':
+ {
+ $test = $_POST['testType'];
+ $output = add_colors(shell_exec($smartctl . " -t " . $test . " /dev/" . $_POST['device']));
+ echo '<pre>' . $output . '
+ <form action="smartmon.php" method="post" name="abort">
+ <input type="hidden" name="device" value="' . $_POST['device'] . '" />
+ <input type="hidden" name="action" value="abort" />
+ <input type="submit" name="submit" value="Abort" />
+ </form>
+ </pre>';
+ break;
+ }
+
+ // Info on devices
+ case 'info':
+ {
+ $type = $_POST['type'];
+ $output = add_colors(shell_exec($smartctl . " -" . $type . " /dev/" . $_POST['device']));
+ echo "<pre>$output</pre>";
+ break;
+ }
+
+ // View logs
+ case 'logs':
+ {
+ $type = $_POST['type'];
+ $output = add_colors(shell_exec($smartctl . " -l " . $type . " /dev/" . $_POST['device']));
+ echo "<pre>$output</pre>";
+ break;
+ }
+
+ // Abort tests
+ case 'abort':
+ {
+ $output = shell_exec($smartctl . " -X /dev/" . $_POST['device']);
+ echo "<pre>$output</pre>";
+ break;
+ }
+
+ // Config changes, users email in xml config and write changes to smartd.conf
+ case 'config':
+ {
+ if(isset($_POST['submit']))
+ {
+ // DOES NOT WORK YET...
+ if($_POST['testemail'])
+ {
+// FIXME shell_exec($smartd . " -M test -m " . $config['system']['smartmonemail']);
+ $savemsg = "Email sent to " . $config['system']['smartmonemail'];
+ smartmonctl("stop");
+ smartmonctl("start");
+ }
+ else
+ {
+ $config['system']['smartmonemail'] = $_POST['smartmonemail'];
+ write_config();
+
+ // Don't know what all this means, but it addes the config changed header when config is saved
+ $retval = 0;
+ config_lock();
+ if(stristr($retval, "error") <> true)
+ $savemsg = get_std_save_message($retval);
+ else
+ $savemsg = $retval;
+ config_unlock();
+
+ if($_POST['email'])
+ {
+ // Write the changes to the smartd.conf file
+ update_email($_POST['smartmonemail']);
+ }
+
+ // Send sig HUP to smartd, rereads the config file
+ shell_exec("/usr/bin/killall -HUP smartd");
+ }
+ }
+ // Was the config changed? if so , print the message
+ if ($savemsg) print_info_box($savemsg);
+ // Get users email from the xml file
+ $pconfig['smartmonemail'] = $config['system']['smartmonemail'];
+
+ ?>
+ <!-- Print the tabs across the top -->
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>
+ <?php
+ $tab_array = array();
+ $tab_array[0] = array("Information/Tests", false, $_SERVER['PHP_SELF'] . "?action=default");
+ $tab_array[1] = array("Config", true, $_SERVER['PHP_SELF'] . "?action=config");
+ display_top_tabs($tab_array);
+ ?>
+ </td>
+ </tr>
+ </table>
+<!-- user email address -->
+ <form action="<?= $_SERVER['PHP_SELF']?>" method="post" name="config">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic">Config</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Email Adress</td>
+ <td width="78%" class="vtable">
+ <input type="text" name="smartmonemail" value="<?=$pconfig['smartmonemail']?>"/>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input type="hidden" name="action" value="config" />
+ <input type="hidden" name="email" value="true" />
+ <input type="submit" name="submit" value="Save" class="formbtn" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+
+<!-- test email -->
+ <form action="<?= $_SERVER['PHP_SELF']?>" method="post" name="config">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic">Test email</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">&nbsp;</td>
+ <td width="78%" class="vtable">
+ Send test email to <?=$config['system']['smartmonemail']?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input type="hidden" name="action" value="config" />
+ <input type="hidden" name="testemail" value="true" />
+ <input type="submit" name="submit" value="Send" class="formbtn" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+
+ <?php
+ break;
+ }
+
+ // Default page, prints the forms to view info, test, etc...
+ default:
+ {
+ // Get all AD* and DA* (IDE and SCSI) devices currently installed and stores them in the $devs array
+ exec("ls /dev | grep '^[ad][da]*[0-9]$'", $devs);
+ ?>
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>
+ <?php
+ $tab_array = array();
+ $tab_array[0] = array("Information/Tests", true, $_SERVER['PHP_SELF']);
+ //$tab_array[1] = array("Config", false, $_SERVER['PHP_SELF'] . "?action=config");
+ display_top_tabs($tab_array);
+ ?>
+ </td>
+ </tr>
+ </table>
+<!--INFO-->
+ <form action="<?= $_SERVER['PHP_SELF']?>" method="post" name="info">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic">Info</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Info type</td>
+ <td width="78%" class="vtable">
+ <input type="radio" name="type" value="i" />Info<br />
+ <input type="radio" name="type" value="H" checked />Health<br />
+ <input type="radio" name="type" value="c" />SMART Capabilities<br />
+ <input type="radio" name="type" value="A" />Attributes<br />
+ <input type="radio" name="type" value="a" />All<br />
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Device: /dev/</td>
+ <td width="78%" class="vtable">
+ <select name="device">
+ <?php
+ foreach($devs as $dev)
+ {
+ echo "<option value=" . $dev . ">" . $dev;
+ }
+ ?>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input type="hidden" name="action" value="info" />
+ <input type="submit" name="submit" value="View" class="formbtn" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+<!--TESTS-->
+ <form action="<?= $_SERVER['PHP_SELF']?>" method="post" name="tests">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic">Perform Self Tests</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Test type</td>
+ <td width="78%" class="vtable">
+ <input type="radio" name="testType" value="offline" />Offline<br />
+ <input type="radio" name="testType" value="short" checked />Short<br />
+ <input type="radio" name="testType" value="long" />Long<br />
+ <input type="radio" name="testType" value="conveyance" />Conveyance (ATA Disks Only)<br />
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Device: /dev/</td>
+ <td width="78%" class="vtable">
+ <select name="device">
+ <?php
+ foreach($devs as $dev)
+ {
+ echo "<option value=" . $dev . ">" . $dev;
+ }
+ ?>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input type="hidden" name="action" value="test" />
+ <input type="submit" name="submit" value="Test" class="formbtn" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+<!--LOGS-->
+ <form action="<?= $_SERVER['PHP_SELF']?>" method="post" name="logs">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic">View Logs</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Log type</td>
+ <td width="78%" class="vtable">
+ <input type="radio" name="type" value="error" checked />Error<br />
+ <input type="radio" name="type" value="selftest" />Self Test<br />
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Device: /dev/</td>
+ <td width="78%" class="vtable">
+ <select name="device">
+ <?php
+ foreach($devs as $dev)
+ {
+ echo "<option value=" . $dev . ">" . $dev;
+ }
+ ?>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input type="hidden" name="action" value="logs" />
+ <input type="submit" name="submit" value="View" class="formbtn" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+<!--ABORT-->
+ <form action="<?= $_SERVER['PHP_SELF']?>" method="post" name="abort">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic">Abort tests</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Device: /dev/</td>
+ <td width="78%" class="vtable">
+ <select name="device">
+ <?php
+ foreach($devs as $dev)
+ {
+ echo "<option value=" . $dev . ">" . $dev;
+ }
+ ?>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input type="hidden" name="action" value="abort" />
+ <input type="submit" name="submit" value="Abort" class="formbtn" onclick="return confirm('Do you really want to abort the test?')" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+
+ <?php
+ break;
+ }
+}
+
+// print back button on pages
+if(isset($_POST['submit']) && $_POST['submit'] != "Save")
+{
+ echo '<br /><a href="' . $_SERVER['PHP_SELF'] . '">Back</a>';
+}
+?>
+<br />
+<?php if ($ulmsg) echo "<p><strong>" . $ulmsg . "</strong></p>\n"; ?>
+
+<?php include("fend.inc"); ?>
+</body>
+</html> \ No newline at end of file
diff --git a/usr/local/www/fbegin.inc b/usr/local/www/fbegin.inc
index c775aaa..8552fbc 100755
--- a/usr/local/www/fbegin.inc
+++ b/usr/local/www/fbegin.inc
@@ -193,6 +193,7 @@ $diagnostics_menu[] = array("pfTOP", "/diag_system_pftop.php");
$diagnostics_menu[] = array("Reboot", "/reboot.php");
$diagnostics_menu[] = array("Routes", "/diag_routes.php");
$diagnostics_menu[] = array("Show Bogons", "/diag_showbogons.php");
+$diagnostics_menu[] = array("SMART Status", "/diag_smart.php");
$diagnostics_menu[] = array("States", "/diag_dump_states.php");
$diagnostics_menu[] = array("States Summary", "/diag_states_summary.php");
$diagnostics_menu[] = array("System Activity", "/diag_system_activity.php");
diff --git a/usr/local/www/firewall_rules.php b/usr/local/www/firewall_rules.php
index cd358da..704f394 100755
--- a/usr/local/www/firewall_rules.php
+++ b/usr/local/www/firewall_rules.php
@@ -126,7 +126,17 @@ if($_REQUEST['dragdroporder']) {
$config = write_config("Drag and drop firewall rules ordering update.");
// Redirect back to page
mark_subsystem_dirty('filter');
- Header("Location: firewall_rules.php?if=" . $_REQUEST['if']);
+ $undo = array();
+ foreach($_REQUEST['dragtable'] as $dt)
+ $undo[] = "";
+ $counter = 0;
+ foreach($_REQUEST['dragtable'] as $dt) {
+ $undo[$dt] = $counter;
+ $counter++;
+ }
+ foreach($undo as $dt)
+ $undotxt .= "&dragtable[]={$dt}";
+ Header("Location: firewall_rules.php?if=" . $_REQUEST['if'] . "&undodrag=true" . $undotxt);
exit;
}
@@ -286,7 +296,16 @@ echo "<script type=\"text/javascript\" language=\"javascript\" src=\"/javascript
</script>
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('filter')): ?><p>
-<?php print_info_box_np("The firewall rule configuration has been changed.<br>You must apply the changes in order for them to take effect.");?><br>
+<?php
+if($_REQUEST['undodrag']) {
+ foreach($_REQUEST['dragtable'] as $dt)
+ $dragtable .= "&dragtable[]={$dt}";
+ print_info_box_np_undo("The firewall rule configuration has been changed.<br>You must apply the changes in order for them to take effect.", "apply" , "Apply changes" , "firewall_rules.php?if={$_REQUEST['if']}&dragdroporder=true&{$dragtable}");
+} else {
+ print_info_box_np("The firewall rule configuration has been changed.<br>You must apply the changes in order for them to take effect.");
+}
+?>
+<br>
<?php endif; ?>
<div id="loading" style="visibity:hidden">
<img src="/themes/<?=$g['theme']?>/images/misc/loader.gif"> Loading, please wait...
diff --git a/usr/local/www/guiconfig.inc b/usr/local/www/guiconfig.inc
index 44680aa..e27b78b 100755
--- a/usr/local/www/guiconfig.inc
+++ b/usr/local/www/guiconfig.inc
@@ -338,6 +338,70 @@ EOFnp;
}
+function print_info_box_np_undo($msg, $name="apply",$value="Apply changes", $undo) {
+ global $g;
+
+ if(stristr($msg, "apply") != false || stristr($msg, "save") != false || stristr($msg, "create") != false) {
+ $savebutton = "<td class='infoboxsave'><nobr>";
+ $savebutton .= " <input type=\"button\" value=\"Undo\" onClick=\"document.location='{$undo}'\">";
+ $savebutton .= " <input name=\"{$name}\" type=\"submit\" class=\"formbtn\" id=\"${name}\" value=\"{$value}\">";
+ $savebutton.="</nobr></td>";
+ if($_POST['if'])
+ $savebutton .= "<input type='hidden' name='if' value='{$_POST['if']}'>";
+ }
+ $nifty_redbox = "#990000";
+ $nifty_blackbox = "#000000";
+
+ $themename = $g['theme'];
+
+ if(file_exists("/usr/local/www/themes/{$themename}/tabcontrols.php")) {
+ $toeval = file_get_contents("/usr/local/www/themes/{$themename}/tabcontrols.php");
+ eval($toeval);
+ }
+
+ if(file_exists("/usr/local/www/themes/{$themename}/infobox.php")) {
+ $toeval = file_get_contents("/usr/local/www/themes/{$themename}/infobox.php");
+ eval($toeval);
+ }
+
+
+ if(!$savebutton) {
+ $savebutton = '<td class="infoboxsave"><input value="Close" type="button" onClick="$(\'redboxtable\').hide();"></td>';
+ }
+
+ echo <<<EOFnp
+ <table class='infobox' id='redboxtable'>
+ <tr>
+ <td>
+ <div class='infoboxnp' id='redbox'>
+ <table class='infoboxnptable2'>
+ <tr>
+ <td class='infoboxnptd'>
+ &nbsp;&nbsp;&nbsp;<img class='infoboxnpimg' src="/themes/{$g['theme']}/images/icons/icon_exclam.gif" >
+ </td>
+ <td class='infoboxnptd2'>
+ <b>{$msg}</b>
+ </td>
+ {$savebutton}
+ {$undobutton}
+ </tr>
+ </table>
+ </div>
+ <div>
+ <p/>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <script type="text/javascript">
+ NiftyCheck();
+ Rounded("div#redbox","all","#FFF","{$nifty_redbox}","smooth");
+ Rounded("td#blackbox","all","#FFF","{$nifty_blackbox}","smooth");
+ </script>
+EOFnp;
+
+}
+
function print_info_box($msg) {
print_info_box_np($msg);
}
diff --git a/usr/local/www/system_advanced_admin.php b/usr/local/www/system_advanced_admin.php
index c853c91..12d7c9e 100644
--- a/usr/local/www/system_advanced_admin.php
+++ b/usr/local/www/system_advanced_admin.php
@@ -52,7 +52,7 @@ require_once("shaper.inc");
$pconfig['webguiproto'] = $config['system']['webgui']['protocol'];
$pconfig['webguiport'] = $config['system']['webgui']['port'];
$pconfig['ssl-certref'] = $config['system']['webgui']['ssl-certref'];
-$pconfig['disablehttpredirect'] = isset($config['system']['disablehttpredirect']);
+$pconfig['disablehttpredirect'] = isset($config['system']['webgui']['disablehttpredirect']);
$pconfig['disableconsolemenu'] = isset($config['system']['disableconsolemenu']);
$pconfig['noantilockout'] = isset($config['system']['webgui']['noantilockout']);
$pconfig['nodnsrebindcheck'] = isset($config['system']['webgui']['nodnsrebindcheck']);
@@ -110,10 +110,10 @@ if ($_POST) {
$restart_webgui = true;
if ($_POST['disablehttpredirect'] == "yes") {
- $config['system']['disablehttpredirect'] = true;
+ $config['system']['webgui']['disablehttpredirect'] = true;
$restart_webgui = true;
} else {
- unset($config['system']['disablehttpredirect']);
+ unset($config['system']['webgui']['disablehttpredirect']);
$restart_webgui = true;
}
@@ -469,4 +469,4 @@ if ($restart_webgui) {
touch("{$g['tmp_path']}/restart_webgui");
}
-?>
+?> \ No newline at end of file
diff --git a/usr/local/www/system_firmware_auto.php b/usr/local/www/system_firmware_auto.php
index 48d727c..4f655fe 100755
--- a/usr/local/www/system_firmware_auto.php
+++ b/usr/local/www/system_firmware_auto.php
@@ -126,7 +126,12 @@ include("head.inc");
update_status(gettext("Downloading current version information") . "...");
$nanosize = "";
if ($g['platform'] == "nanobsd") {
- $nanosize = "-nanobsd-" . strtolower(trim(file_get_contents("/etc/nanosize.txt")));
+ if (file_exists("/etc/nano_use_vga.txt"))
+ $nanosize = "-nanobsd-vga-";
+ else
+ $nanosize = "-nanobsd-";
+
+ $nanosize .= strtolower(trim(file_get_contents("/etc/nanosize.txt")));
}
download_file_with_progress_bar("{$updater_url}/version{$nanosize}", "/tmp/{$g['product_name']}_version");
diff --git a/usr/local/www/system_firmware_check.php b/usr/local/www/system_firmware_check.php
index c676950..8057a3c 100755
--- a/usr/local/www/system_firmware_check.php
+++ b/usr/local/www/system_firmware_check.php
@@ -123,7 +123,12 @@ $static_text .= gettext("Downloading new version information...");
$nanosize = "";
if ($g['platform'] == "nanobsd") {
- $nanosize = "-nanobsd-" . strtolower(trim(file_get_contents("/etc/nanosize.txt")));
+ if (file_exists("/etc/nano_use_vga.txt"))
+ $nanosize = "-nanobsd-vga-";
+ else
+ $nanosize = "-nanobsd-";
+
+ $nanosize .= strtolower(trim(file_get_contents("/etc/nanosize.txt")));
}
download_file_with_progress_bar("{$updater_url}/version{$nanosize}", "/tmp/{$g['product_name']}_version");
diff --git a/usr/local/www/system_groupmanager.php b/usr/local/www/system_groupmanager.php
index 9c37c99..a167790 100644
--- a/usr/local/www/system_groupmanager.php
+++ b/usr/local/www/system_groupmanager.php
@@ -150,6 +150,14 @@ if ($_POST) {
}
local_group_set($group);
+
+ /* Refresh users in this group since their privileges may have changed. */
+ $a_user = &$config['system']['user'];
+ foreach ($a_user as & $user) {
+ if (in_array($user['uid'], $group['member']))
+ local_user_set($user);
+ }
+
write_config();
header("Location: system_groupmanager.php");
diff --git a/usr/local/www/system_usermanager.php b/usr/local/www/system_usermanager.php
index 3477721..746cf37 100644
--- a/usr/local/www/system_usermanager.php
+++ b/usr/local/www/system_usermanager.php
@@ -331,8 +331,8 @@ if (isAllowedPage("system_usermanager")) {
$a_user[] = $userent;
}
- local_user_set($userent);
local_user_set_groups($userent,$_POST['groups']);
+ local_user_set($userent);
write_config();
if(is_dir("/etc/inc/privhooks"))
OpenPOWER on IntegriCloud