From 46bc6e545a17e77202aaf01ec0cd8d5a46567525 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Tue, 25 Aug 2015 08:08:24 -0300 Subject: Move main pfSense content to src/ --- src/usr/local/www/index.php | 799 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 799 insertions(+) create mode 100644 src/usr/local/www/index.php (limited to 'src/usr/local/www/index.php') diff --git a/src/usr/local/www/index.php b/src/usr/local/www/index.php new file mode 100644 index 0000000..ba39623 --- /dev/null +++ b/src/usr/local/www/index.php @@ -0,0 +1,799 @@ +. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + oR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ +/* + pfSense_BUILDER_BINARIES: /sbin/ifconfig + pfSense_MODULE: interfaces +*/ + +##|+PRIV +##|*IDENT=page-system-login/logout +##|*NAME=System: Login / Logout page / Dashboard +##|*DESCR=Allow access to the 'System: Login / Logout' page and Dashboard. +##|*MATCH=index.php* +##|-PRIV + +// Turn on buffering to speed up rendering +ini_set('output_buffering', 'true'); + +// Start buffering with a cache size of 100000 +ob_start(null, "1000"); + + +## Load Essential Includes +require_once('guiconfig.inc'); +require_once('functions.inc'); +require_once('notices.inc'); +require_once("pkg-utils.inc"); + +if (isset($_REQUEST['closenotice'])) { + close_notice($_REQUEST['closenotice']); + echo get_menu_messages(); + exit; +} +if ($_REQUEST['act'] == 'alias_info_popup' && !preg_match("/\D/", $_REQUEST['aliasid'])) { + alias_info_popup($_REQUEST['aliasid']); + exit; +} + +if ($g['disablecrashreporter'] != true) { + // Check to see if we have a crash report + $x = 0; + if (file_exists("/tmp/PHP_errors.log")) { + $total = `/usr/bin/grep -vi warning /tmp/PHP_errors.log | /usr/bin/wc -l | /usr/bin/awk '{ print $1 }'`; + if ($total > 0) { + $x++; + } + } + $crash = glob("/var/crash/*"); + $skip_files = array(".", "..", "minfree", ""); + if (is_array($crash)) { + foreach ($crash as $c) { + if (!in_array(basename($c), $skip_files)) { + $x++; + } + } + if ($x > 0) { + $savemsg = "{$g['product_name']} has detected a crash report or programming bug. Click here for more information."; + } + } +} + +##build list of widgets +$directory = "/usr/local/www/widgets/widgets/"; +$dirhandle = opendir($directory); +$filename = ""; +$widgetnames = array(); +$widgetfiles = array(); +$widgetlist = array(); + +while (false !== ($filename = readdir($dirhandle))) { + $periodpos = strpos($filename, "."); + /* Ignore files not ending in .php */ + if (substr($filename, -4, 4) != ".php") { + continue; + } + $widgetname = substr($filename, 0, $periodpos); + $widgetnames[] = $widgetname; + if ($widgetname != "system_information") { + $widgetfiles[] = $filename; + } +} + +##sort widgets alphabetically +sort($widgetfiles); + +##insert the system information widget as first, so as to be displayed first +array_unshift($widgetfiles, "system_information.widget.php"); + +##if no config entry found, initialize config entry +if (!is_array($config['widgets'])) { + $config['widgets'] = array(); +} + +if ($_POST && $_POST['submit']) { + $config['widgets']['sequence'] = $_POST['sequence']; + + foreach ($widgetnames as $widget) { + if ($_POST[$widget . '-config']) { + $config['widgets'][$widget . '-config'] = $_POST[$widget . '-config']; + } + } + + write_config(gettext("Widget configuration has been changed.")); + header("Location: index.php"); + exit; +} + +## Load Functions Files +require_once('includes/functions.inc.php'); + +## Check to see if we have a swap space, +## if true, display, if false, hide it ... +if (file_exists("/usr/sbin/swapinfo")) { + $swapinfo = `/usr/sbin/swapinfo`; + if (stristr($swapinfo, '%') == true) { + $showswap=true; + } +} + +## User recently restored his config. +## If packages are installed lets resync +if (file_exists('/conf/needs_package_sync')) { + if ($config['installedpackages'] <> '' && is_array($config['installedpackages']['package'])) { + if ($g['platform'] == "pfSense" || $g['platform'] == "nanobsd") { + ## If the user has logged into webGUI quickly while the system is booting then do not redirect them to + ## the package reinstall page. That is about to be done by the boot script anyway. + ## The code in fbegin.inc will put up a notice to the user. + if (!platform_booting()) { + header('Location: pkg_mgr_install.php?mode=reinstallall'); + exit; + } + } + } else { + conf_mount_rw(); + @unlink('/conf/needs_package_sync'); + conf_mount_ro(); + } +} + +## If it is the first time webConfigurator has been +## accessed since initial install show this stuff. +if (file_exists('/conf/trigger_initial_wizard')) { + $lang_code = system_get_language_code(); + $lang_codeset = system_get_language_codeset(); + echo << + + + {$g['product_name']}.localdomain - {$g['product_name']} first time setup + + + + + +EOF; + + echo "\n"; + + if (file_exists("/usr/local/www/themes/{$g['theme']}/wizard.css")) { + echo "\n"; + } else { + echo ""; + } + + echo "
\n"; + echo "
\n"; + echo "\"logo\"

\n"; + echo "

\n"; + echo sprintf(gettext("Welcome to %s!\n"), $g['product_name']) . "

"; + echo gettext("One moment while we start the initial setup wizard.") . "

\n"; + echo gettext("Embedded platform users: Please be patient, the wizard takes a little longer to run than the normal GUI.") . "

\n"; + echo sprintf(gettext("To bypass the wizard, click on the %s logo on the initial page."), $g['product_name']) . "\n"; + echo "

\n"; + echo "\n"; + echo "\n"; + exit; +} + + +## Find out whether there's hardware encryption or not +unset($hwcrypto); +$fd = @fopen("{$g['varlog_path']}/dmesg.boot", "r"); +if ($fd) { + while (!feof($fd)) { + $dmesgl = fgets($fd); + if (preg_match("/^hifn.: (.*?),/", $dmesgl, $matches) or + preg_match("/.*(VIA Padlock)/", $dmesgl, $matches) or + preg_match("/^safe.: (\w.*)/", $dmesgl, $matches) or + preg_match("/^ubsec.: (.*?),/", $dmesgl, $matches) or + preg_match("/^padlock.: <(.*?)>,/", $dmesgl, $matches) or + preg_match("/^glxsb.: (.*?),/", $dmesgl, $matches) or + preg_match("/^aesni.: <(.*?)>/", $dmesgl, $matches)) { + $hwcrypto = $matches[1]; + break; + } + } + fclose($fd); +} + +##build widget saved list information +if ($config['widgets'] && $config['widgets']['sequence'] != "") { + $pconfig['sequence'] = $config['widgets']['sequence']; + + $widgetlist = $pconfig['sequence']; + $colpos = array(); + $savedwidgetfiles = array(); + $widgetname = ""; + $widgetlist = explode(",", $widgetlist); + + ##read the widget position and display information + foreach ($widgetlist as $widget) { + $dashpos = strpos($widget, "-"); + $widgetname = substr($widget, 0, $dashpos); + $colposition = strpos($widget, ":"); + $displayposition = strrpos($widget, ":"); + $colpos[] = substr($widget, $colposition + 1, $displayposition - $colposition - 1); + $displayarray[] = substr($widget, $displayposition + 1); + $savedwidgetfiles[] = $widgetname . ".widget.php"; + } + + ##add widgets that may not be in the saved configuration, in case they are to be displayed later + foreach ($widgetfiles as $defaultwidgets) { + if (!in_array($defaultwidgets, $savedwidgetfiles)) { + $savedwidgetfiles[] = $defaultwidgets; + } + } + + ##find custom configurations of a particular widget and load its info to $pconfig + foreach ($widgetnames as $widget) { + if ($config['widgets'][$widget . '-config']) { + $pconfig[$widget . '-config'] = $config['widgets'][$widget . '-config']; + } + } + + $widgetlist = $savedwidgetfiles; +} else { + // no saved widget sequence found, build default list. + $widgetlist = $widgetfiles; +} + +##build list of php include files +$phpincludefiles = array(); +$directory = "/usr/local/www/widgets/include/"; +$dirhandle = opendir($directory); +$filename = ""; +while (false !== ($filename = readdir($dirhandle))) { + $phpincludefiles[] = $filename; +} +foreach ($phpincludefiles as $includename) { + if (!stristr($includename, ".inc")) { + continue; + } + include($directory . $includename); +} + +##begin AJAX +$jscriptstr = << +// + +EOD; + + +## Set Page Title and Include Header +$pgtitle = array(gettext("Status: Dashboard")); +include("head.inc"); + +?> + + + + + +\"big

"; +} + +/* Print package server mismatch warning. See https://redmine.pfsense.org/issues/484 */ +if (!verify_all_package_servers()) { + print_info_box(package_server_mismatch_message()); +} + +if ($savemsg) { + print_info_box($savemsg); +} + +pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard"); + +?> + + + + + + + <?=gettext(" style="cursor: pointer;" onmouseup="domTT_activate(this, event, 'content', document.getElementById('content1'), 'type', 'velcro', 'delay', 0, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');" /> + + <?=gettext(" style="cursor: help;" onmouseup="hideAllWidgets();domTT_activate(this, event, 'content', document.getElementById('welcome-container'), 'type', 'sticky', 'closeLink', '', 'delay', 0, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');" /> + +    + " /> +
+ +
+ +
+ +
+
+ = $halftotal && $printed == false) { + $printed = true; + ?> +
+
+ +
+
+ + + +
+
+ +
+
+ + + + + + + + + +
+
+ +
open
+
minimize
+
close
+
+
+
+ +
+
+ <?=gettext(..." /> +
+
+
+ +
+
+
+ +
+
+
+ + + + +\n"; + } +?> + + + -- cgit v1.1