summaryrefslogtreecommitdiffstats
path: root/src/usr/local/www/system_advanced_notifications.php
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-08-26 15:12:02 -0300
committerRenato Botelho <renato@netgate.com>2015-08-26 15:12:02 -0300
commit03b19a93f4d8d870507ee96121cee4acd748dd2a (patch)
tree71a34e9e7e73d13de21cb4ad831799fb10c30df4 /src/usr/local/www/system_advanced_notifications.php
parent7f410a121522c5d0e2660256ae50c1fde1df3645 (diff)
parent30ce58ac1ea27b758d5112cb5a3b190c9760f010 (diff)
downloadpfsense-03b19a93f4d8d870507ee96121cee4acd748dd2a.zip
pfsense-03b19a93f4d8d870507ee96121cee4acd748dd2a.tar.gz
Merge branch 'master' into bootstrap
Diffstat (limited to 'src/usr/local/www/system_advanced_notifications.php')
-rw-r--r--src/usr/local/www/system_advanced_notifications.php341
1 files changed, 341 insertions, 0 deletions
diff --git a/src/usr/local/www/system_advanced_notifications.php b/src/usr/local/www/system_advanced_notifications.php
new file mode 100644
index 0000000..91a3f70
--- /dev/null
+++ b/src/usr/local/www/system_advanced_notifications.php
@@ -0,0 +1,341 @@
+<?php
+/* $Id$ */
+/*
+ system_advanced_notifications.php
+ part of pfSense
+ Copyright (C) 2009 Scott Ullrich <sullrich@gmail.com>
+ Copyright (C) 2013-2015 Electric Sheep Fencing, LP
+
+ 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_MODULE: system
+*/
+
+##|+PRIV
+##|*IDENT=page-system-advanced-notifications
+##|*NAME=System: Advanced: Notifications page
+##|*DESCR=Allow access to the 'System: Advanced: Notifications' page.
+##|*MATCH=system_advanced_notifications.php*
+##|-PRIV
+
+require("guiconfig.inc");
+require_once("notices.inc");
+
+// Growl
+$pconfig['disable_growl'] = isset($config['notifications']['growl']['disable']);
+if ($config['notifications']['growl']['password']) {
+ $pconfig['password'] = $config['notifications']['growl']['password'];
+}
+if ($config['notifications']['growl']['ipaddress']) {
+ $pconfig['ipaddress'] = $config['notifications']['growl']['ipaddress'];
+}
+
+if ($config['notifications']['growl']['notification_name']) {
+ $pconfig['notification_name'] = $config['notifications']['growl']['notification_name'];
+} else {
+ $pconfig['notification_name'] = "{$g['product_name']} growl alert";
+}
+
+if ($config['notifications']['growl']['name']) {
+ $pconfig['name'] = $config['notifications']['growl']['name'];
+} else {
+ $pconfig['name'] = 'PHP-Growl';
+}
+
+
+// SMTP
+$pconfig['disable_smtp'] = isset($config['notifications']['smtp']['disable']);
+if ($config['notifications']['smtp']['ipaddress']) {
+ $pconfig['smtpipaddress'] = $config['notifications']['smtp']['ipaddress'];
+}
+if ($config['notifications']['smtp']['port']) {
+ $pconfig['smtpport'] = $config['notifications']['smtp']['port'];
+}
+if (isset($config['notifications']['smtp']['ssl'])) {
+ $pconfig['smtpssl'] = true;
+}
+if (isset($config['notifications']['smtp']['tls'])) {
+ $pconfig['smtptls'] = true;
+}
+if ($config['notifications']['smtp']['notifyemailaddress']) {
+ $pconfig['smtpnotifyemailaddress'] = $config['notifications']['smtp']['notifyemailaddress'];
+}
+if ($config['notifications']['smtp']['username']) {
+ $pconfig['smtpusername'] = $config['notifications']['smtp']['username'];
+}
+if ($config['notifications']['smtp']['password']) {
+ $pconfig['smtppassword'] = $config['notifications']['smtp']['password'];
+}
+if ($config['notifications']['smtp']['authentication_mechanism']) {
+ $pconfig['smtpauthmech'] = $config['notifications']['smtp']['authentication_mechanism'];
+}
+if ($config['notifications']['smtp']['fromaddress']) {
+ $pconfig['smtpfromaddress'] = $config['notifications']['smtp']['fromaddress'];
+}
+
+// System Sounds
+$pconfig['disablebeep'] = isset($config['system']['disablebeep']);
+
+if ($_POST) {
+
+ unset($input_errors);
+ $pconfig = $_POST;
+
+ if (isset($_POST['save'])) {
+
+ // Growl
+ $config['notifications']['growl']['ipaddress'] = $_POST['ip-address'];
+ $config['notifications']['growl']['password'] = $_POST['password'];
+ $config['notifications']['growl']['name'] = $_POST['registration-name'];
+ $config['notifications']['growl']['notification_name'] = $_POST['notification-name'];
+
+ if ($_POST['disable_growl'] == "yes") {
+ $config['notifications']['growl']['disable'] = true;
+ } else {
+ unset($config['notifications']['growl']['disable']);
+ }
+
+ // SMTP
+ $config['notifications']['smtp']['ipaddress'] = $_POST['smtpipaddress'];
+ $config['notifications']['smtp']['port'] = $_POST['smtpport'];
+ if (isset($_POST['smtpssl'])) {
+ $config['notifications']['smtp']['ssl'] = true;
+ } else {
+ unset($config['notifications']['smtp']['ssl']);
+ }
+
+ if (isset($_POST['smtptls'])) {
+ $config['notifications']['smtp']['tls'] = true;
+ } else {
+ unset($config['notifications']['smtp']['tls']);
+ }
+
+ $config['notifications']['smtp']['notifyemailaddress'] = $_POST['smtpnotifyemailaddress'];
+ $config['notifications']['smtp']['username'] = $_POST['smtpusername'];
+ $config['notifications']['smtp']['password'] = $_POST['smtppassword'];
+ $config['notifications']['smtp']['authentication_mechanism'] = $_POST['smtpauthmech'];
+ $config['notifications']['smtp']['fromaddress'] = $_POST['smtpfromaddress'];
+
+ if ($_POST['disable_smtp'] == "yes") {
+ $config['notifications']['smtp']['disable'] = true;
+ } else {
+ unset($config['notifications']['smtp']['disable']);
+ }
+
+ // System Sounds
+ if ($_POST['disablebeep'] == "yes") {
+ $config['system']['disablebeep'] = true;
+ } else {
+ unset($config['system']['disablebeep']);
+ }
+
+ write_config();
+ pfSenseHeader("system_advanced_notifications.php");
+ return;
+
+ }
+
+ if (isset($_POST['test-growl'])) {
+ // Send test message via growl
+ if ($config['notifications']['growl']['ipaddress'] &&
+ $config['notifications']['growl']['password'] = $_POST['password']) {
+ unlink_if_exists($g['vardb_path'] . "/growlnotices_lastmsg.txt");
+ register_via_growl();
+ notify_via_growl(sprintf(gettext("This is a test message from %s. It is safe to ignore this message."), $g['product_name']), true);
+ }
+ }
+
+ if (isset($_POST['test-smtp'])) {
+ // Send test message via smtp
+ if (file_exists("/var/db/notices_lastmsg.txt")) {
+ unlink("/var/db/notices_lastmsg.txt");
+ }
+ $savemsg = notify_via_smtp(sprintf(gettext("This is a test message from %s. It is safe to ignore this message."), $g['product_name']), true);
+ }
+}
+
+$pgtitle = array(gettext("System"), gettext("Advanced: Notifications"));
+include("head.inc");
+
+if ($input_errors)
+ print_input_errors($input_errors);
+if ($savemsg)
+ print_info_box($savemsg);
+
+$tab_array = array();
+$tab_array[] = array(gettext("Admin Access"), false, "system_advanced_admin.php");
+$tab_array[] = array(gettext("Firewall / NAT"), false, "system_advanced_firewall.php");
+$tab_array[] = array(gettext("Networking"), false, "system_advanced_network.php");
+$tab_array[] = array(gettext("Miscellaneous"), false, "system_advanced_misc.php");
+$tab_array[] = array(gettext("System Tunables"), false, "system_advanced_sysctl.php");
+$tab_array[] = array(gettext("Notifications"), true, "system_advanced_notifications.php");
+display_top_tabs($tab_array);
+
+?><div id="container"><?php
+
+require('classes/Form.class.php');
+$form = new Form;
+$section = new Form_Section('Growl');
+
+$section->addInput(new Form_Checkbox(
+ 'disable-growl',
+ 'Disable Growl',
+ 'Disable Growl Notifications',
+ $pconfig['disable_growl']
+))->setHelp('Check this option to disable growl notifications but preserve the '.
+ 'settings below.');
+
+$section->addInput(new Form_Input(
+ 'registration-name',
+ 'Registration Name',
+ 'text',
+ $pconfig['name'],
+ ['placeholder' => 'PHP-Growl']
+))->setHelp('Enter the name to register with the Growl server.');
+
+$section->addInput(new Form_Input(
+ 'notification-name',
+ 'Notification Name',
+ 'text',
+ $pconfig['notification_name'],
+ ['placeholder' => $g["product_name"].' growl alert']
+
+))->setHelp('Enter a name for the Growl notifications');
+
+$section->addInput(new Form_Input(
+ 'ip-address',
+ 'IP Address',
+ 'text',
+ $pconfig['ipaddress']
+))->setHelp('This is the IP address that you would like to send growl '.
+ 'notifications to.');
+
+$section->addInput(new Form_Input(
+ 'password',
+ 'Password',
+ 'text',
+ $pconfig['password']
+))->setHelp('Enter the password of the remote growl notification device.');
+
+$section->addInput(new Form_Input(
+ 'test-growl',
+ 'Test Growl',
+ 'submit',
+ 'Test Growl settings'
+))->setHelp('A test notification will be sent even if the service is '.
+ 'marked as disabled.');
+
+$form->add($section);
+$section = new Form_Section('E-Mail');
+
+$section->addInput(new Form_Checkbox(
+ 'disable-smtp',
+ 'Disable SMTP',
+ 'Disable SMTP Notifications',
+ $pconfig['disable_smtp']
+))->setHelp('Check this option to disable SMTP notifications but preserve the '.
+ 'settings below. Some other mechanisms, such as packages, may need these settings '.
+ 'in place to function.');
+
+$section->addInput(new Form_Input(
+ 'e-mail-server',
+ 'E-Mail server',
+ 'text',
+ $pconfig['smtpipaddress']
+))->setHelp('This is the FQDN or IP address of the SMTP E-Mail server to '.
+ 'which notifications will be sent.');
+
+$section->addInput(new Form_Input(
+ 'smtp-port-of-e-mail-server',
+ 'SMTP Port of E-Mail server',
+ 'number',
+ $pconfig['smtpport']
+))->setHelp('This is the port of the SMTP E-Mail server, typically 25, 587 '.
+ '(submission) or 465 (smtps)');
+
+$group = new Form_Group('Secure SMTP Connection');
+$group->add(new Form_Checkbox(
+ 'enable-ssl-tls',
+ 'Enable SSL/TLS',
+ 'Enable SMTP over SSL/TLS',
+ isset($pconfig['smtpssl'])
+));
+
+$group->add(new Form_Checkbox(
+ 'secure-starttls',
+ 'Secure STARTTLS',
+ 'Enable STARTTLS',
+ isset($pconfig['smtptls'])
+));
+
+$section->add($group);
+
+$section->addInput(new Form_Input(
+ 'from-e-mail-address',
+ 'From e-mail address',
+ 'text',
+ $pconfig['smtpfromaddress']
+))->setHelp('This is the e-mail address that will appear in the from field.');
+
+$section->addInput(new Form_Input(
+ 'notification-e-mail-address',
+ 'Notification E-Mail address',
+ 'text',
+ $pconfig['smtpnotifyemailaddress']
+))->setHelp('Enter the e-mail address that you would like email '.
+ 'notifications sent to.');
+
+$section->addInput(new Form_Input(
+ 'notification-e-mail-auth-username-optional-',
+ 'Notification E-Mail auth username (optional)',
+ 'text',
+ $pconfig['smtpusername']
+))->setHelp('Enter the e-mail address username for SMTP authentication.');
+
+$section->addInput(new Form_Input(
+ 'notification-e-mail-auth-password',
+ 'Notification E-Mail auth password',
+ 'password',
+ $pconfig['smtppassword']
+))->setHelp('Enter the e-mail address password for SMTP authentication.');
+
+$section->addInput(new Form_Input(
+ 'test-smtp',
+ 'Test SMTP',
+ 'submit',
+ 'Test SMTP settings'
+))->setHelp('A test notification will be sent even if the service is '.
+ 'marked as disabled.');
+
+$section->addInput(new Form_Checkbox(
+ 'startup-shutdown-sound',
+ 'Startup/Shutdown Sound',
+ 'Disable the startup/shutdown beep',
+ $pconfig['disablebeep']
+))->setHelp('When this is checked, startup and shutdown sounds will no longer '.
+ 'play.');
+
+$form->add($section);
+print $form;
+
+include("foot.inc"); \ No newline at end of file
OpenPOWER on IntegriCloud