Project

General

Profile

Download (14 KB) Statistics
| Branch: | Tag: | Revision:
1 facd2d76 Scott Ullrich
<?php
2
/* $Id$ */
3
/*
4
	system_advanced_notifications.php
5
	part of pfSense
6
	Copyright (C) 2009 Scott Ullrich <sullrich@gmail.com>
7
8
	Redistribution and use in source and binary forms, with or without
9
	modification, are permitted provided that the following conditions are met:
10
11
	1. Redistributions of source code must retain the above copyright notice,
12
	   this list of conditions and the following disclaimer.
13
14
	2. Redistributions in binary form must reproduce the above copyright
15
	   notice, this list of conditions and the following disclaimer in the
16
	   documentation and/or other materials provided with the distribution.
17
18
	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
19
	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
20
	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
21
	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
22
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
	POSSIBILITY OF SUCH DAMAGE.
28
*/
29 1d333258 Scott Ullrich
/*
30
	pfSense_MODULE:	system
31
*/
32 facd2d76 Scott Ullrich
33
##|+PRIV
34
##|*IDENT=page-system-advanced-notifications
35
##|*NAME=System: Advanced: Tunables page
36
##|*DESCR=Allow access to the 'System: Advanced: Tunables' page.
37
##|*MATCH=system_advanced-sysctrl.php*
38
##|-PRIV
39
40
require("guiconfig.inc");
41 39163f72 Ermal Lu?i
require_once("notices.inc");
42 facd2d76 Scott Ullrich
43 b19369b7 Scott Ullrich
// Growl
44 48b86f62 jim-p
$pconfig['disable_growl'] = isset($config['notifications']['growl']['disable']);
45 66184513 Scott Ullrich
if($config['notifications']['growl']['password']) 
46
	$pconfig['password'] = $config['notifications']['growl']['password'];
47
if($config['notifications']['growl']['ipaddress']) 
48
	$pconfig['ipaddress'] = $config['notifications']['growl']['ipaddress'];
49 d9252b1f Scott Ullrich
50 addbcae7 Scott Ullrich
if($config['notifications']['growl']['notification_name']) 
51
	$pconfig['notification_name'] = $config['notifications']['growl']['notification_name'];
52
else
53 ebb57fe2 Warren Baker
  $pconfig['notification_name'] = "{$g['product_name']} growl alert";
54 addbcae7 Scott Ullrich
  
55
if($config['notifications']['growl']['name']) 
56
	$pconfig['name'] = $config['notifications']['growl']['name'];
57
else
58
  $pconfig['name'] = 'PHP-Growl';
59
60
61 b19369b7 Scott Ullrich
// SMTP
62 48b86f62 jim-p
$pconfig['disable_smtp'] = isset($config['notifications']['smtp']['disable']);
63 4090c90f Scott Ullrich
if($config['notifications']['smtp']['ipaddress']) 
64
	$pconfig['smtpipaddress'] = $config['notifications']['smtp']['ipaddress'];
65 9277b7ef jim-p
if($config['notifications']['smtp']['port'])
66
	$pconfig['smtpport'] = $config['notifications']['smtp']['port'];
67 2d74f1cf Albert S. Causing
if($config['notifications']['smtp']['ssl'])
68
	$pconfig['smtpssl'] = $config['notifications']['smtp']['ssl'];
69 b19369b7 Scott Ullrich
if($config['notifications']['smtp']['notifyemailaddress']) 
70
	$pconfig['smtpnotifyemailaddress'] = $config['notifications']['smtp']['notifyemailaddress'];
71 72306d5a Scott Ullrich
if($config['notifications']['smtp']['username']) 
72
	$pconfig['smtpusername'] = $config['notifications']['smtp']['username'];
73
if($config['notifications']['smtp']['password']) 
74
	$pconfig['smtppassword'] = $config['notifications']['smtp']['password'];
75
if($config['notifications']['smtp']['fromaddress']) 
76
	$pconfig['smtpfromaddress'] = $config['notifications']['smtp']['fromaddress'];
77 b19369b7 Scott Ullrich
78 970ca1b7 Yehuda Katz
// System Sounds
79 66a346b4 Erik Fonnesbeck
$pconfig['disablebeep'] = isset($config['system']['disablebeep']);
80 970ca1b7 Yehuda Katz
81 facd2d76 Scott Ullrich
if ($_POST) {
82
83
	unset($input_errors);
84
	$pconfig = $_POST;
85
86
	/* if this is an AJAX caller then handle via JSON */
87
	if (isAjax() && is_array($input_errors)) {
88
		input_errors2Ajax($input_errors);
89
		exit;
90
	}
91
92
	if ($_POST['apply']) {
93
		$retval = 0;
94
		system_setup_sysctl();		
95
		$savemsg = get_std_save_message($retval);
96
	}
97
98 f0d1edc9 Carlos Eduardo Ramos
	if ($_POST['Submit'] == gettext("Save")) {
99 facd2d76 Scott Ullrich
		$tunableent = array();
100
101 b19369b7 Scott Ullrich
		// Growl
102 1afa87e5 Scott Ullrich
		$config['notifications']['growl']['ipaddress'] = $_POST['ipaddress'];
103
		$config['notifications']['growl']['password'] = $_POST['password'];
104 addbcae7 Scott Ullrich
		$config['notifications']['growl']['name'] = $_POST['name'];
105
		$config['notifications']['growl']['notification_name'] = $_POST['notification_name'];
106 facd2d76 Scott Ullrich
107 48b86f62 jim-p
		if($_POST['disable_growl'] == "yes")
108
			$config['notifications']['growl']['disable'] = true;
109
		else
110
			unset($config['notifications']['growl']['disable']);
111
112 b19369b7 Scott Ullrich
		// SMTP
113
		$config['notifications']['smtp']['ipaddress'] = $_POST['smtpipaddress'];
114 9277b7ef jim-p
		$config['notifications']['smtp']['port'] = $_POST['smtpport'];
115 2d74f1cf Albert S. Causing
		$config['notifications']['smtp']['ssl'] = isset($_POST['smtpssl']) ? 'checked' : 'unchecked';
116 b19369b7 Scott Ullrich
		$config['notifications']['smtp']['notifyemailaddress'] = $_POST['smtpnotifyemailaddress'];
117 72306d5a Scott Ullrich
		$config['notifications']['smtp']['username'] = $_POST['smtpusername'];
118
		$config['notifications']['smtp']['password'] = $_POST['smtppassword'];
119
		$config['notifications']['smtp']['fromaddress'] = $_POST['smtpfromaddress'];
120 b19369b7 Scott Ullrich
121 48b86f62 jim-p
		if($_POST['disable_smtp'] == "yes")
122
			$config['notifications']['smtp']['disable'] = true;
123
		else
124
			unset($config['notifications']['smtp']['disable']);
125
126 970ca1b7 Yehuda Katz
		// System Sounds
127
		if($_POST['disablebeep'] == "yes")
128 66a346b4 Erik Fonnesbeck
			$config['system']['disablebeep'] = true;
129 970ca1b7 Yehuda Katz
		else
130 66a346b4 Erik Fonnesbeck
			unset($config['system']['disablebeep']);
131 970ca1b7 Yehuda Katz
132 facd2d76 Scott Ullrich
		write_config();
133 48b86f62 jim-p
		pfSenseHeader("system_advanced_notifications.php");
134
		return;
135 facd2d76 Scott Ullrich
136 48b86f62 jim-p
	}
137
	if ($_POST['test_growl'] == gettext("Test Growl")) {
138 b19369b7 Scott Ullrich
		// Send test message via growl
139 72306d5a Scott Ullrich
		if($config['notifications']['growl']['ipaddress'] && 
140 48b86f62 jim-p
			$config['notifications']['growl']['password'] = $_POST['password'] &&
141
			!isset($config['notifications']['growl']['disable'])) {
142 f670f0a2 Scott Ullrich
			unlink_if_exists($g['vardb_path'] . "/growlnotices_lastmsg.txt");
143 72306d5a Scott Ullrich
			register_via_growl();
144 48b86f62 jim-p
			notify_via_growl(sprintf(gettext("This is a test message from %s.  It is safe to ignore this message."), $g['product_name']), true);
145 72306d5a Scott Ullrich
		}
146 48b86f62 jim-p
	}
147
	if ($_POST['test_smtp'] == gettext("Test SMTP")) {
148 b19369b7 Scott Ullrich
		// Send test message via smtp
149 8b0d920e Scott Ullrich
		if(file_exists("/var/db/notices_lastmsg.txt"))
150
			unlink("/var/db/notices_lastmsg.txt");
151 48b86f62 jim-p
		$savemsg = notify_via_smtp(sprintf(gettext("This is a test message from %s.  It is safe to ignore this message."), $g['product_name']), true);
152
	}
153 facd2d76 Scott Ullrich
}
154
155 f0d1edc9 Carlos Eduardo Ramos
$pgtitle = array(gettext("System"),gettext("Advanced: Notifications"));
156 facd2d76 Scott Ullrich
include("head.inc");
157
158
?>
159
160
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
161
<?php include("fbegin.inc"); ?>
162
	<form action="system_advanced_notifications.php" method="post">
163
		<?php
164
			if ($input_errors)
165
				print_input_errors($input_errors);
166
			if ($savemsg)
167
				print_info_box($savemsg);
168
		?>
169
	</form>
170 846ac60f Colin Fleming
	<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced notifications">
171 facd2d76 Scott Ullrich
		<tr>
172
			<td>
173
				<?php
174
					$tab_array = array();
175 f0d1edc9 Carlos Eduardo Ramos
					$tab_array[] = array(gettext("Admin Access"), false, "system_advanced_admin.php");
176
					$tab_array[] = array(gettext("Firewall / NAT"), false, "system_advanced_firewall.php");
177
					$tab_array[] = array(gettext("Networking"), false, "system_advanced_network.php");
178
					$tab_array[] = array(gettext("Miscellaneous"), false, "system_advanced_misc.php");
179
					$tab_array[] = array(gettext("System Tunables"), false, "system_advanced_sysctl.php");
180
					$tab_array[] = array(gettext("Notifications"), true, "system_advanced_notifications.php");
181 facd2d76 Scott Ullrich
					display_top_tabs($tab_array);
182
				?>
183
			</td>
184
		</tr>
185
		<tr>
186
			<td id="mainarea">
187
				<div class="tabcont">
188
					<form action="system_advanced_notifications.php" method="post" name="iform">
189 846ac60f Colin Fleming
					<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
190 b19369b7 Scott Ullrich
						<!-- GROWL -->
191 facd2d76 Scott Ullrich
						<tr>
192 f0d1edc9 Carlos Eduardo Ramos
							<td colspan="2" valign="top" class="listtopic"><?=gettext("Growl"); ?></td>
193 facd2d76 Scott Ullrich
						</tr>
194 48b86f62 jim-p
						<tr>
195
							<td width="22%" valign="top" class="vncell"><?=gettext("Disable Growl Notifications"); ?></td>
196
							<td width="78%" class="vtable">
197
								<input type='checkbox' name='disable_growl' value="yes" <?php if ($pconfig['disable_growl']) {?>checked="checked"<?php } ?> /><br/>
198
								<?=gettext("Check this option to disable growl notifications but preserve the settings below."); ?>
199
							</td>
200
						</tr>
201 addbcae7 Scott Ullrich
						<tr>
202 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Registration Name"); ?></td>
203 addbcae7 Scott Ullrich
							<td width="78%" class="vtable">
204 846ac60f Colin Fleming
								<input name='name' value='<?php echo $pconfig['name']; ?>' /><br/>
205 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the name to register with the Growl server (default: PHP-Growl)."); ?>
206 addbcae7 Scott Ullrich
							</td>
207
						</tr>
208
  					<tr>
209 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification Name"); ?></td>
210 addbcae7 Scott Ullrich
							<td width="78%" class="vtable">
211 846ac60f Colin Fleming
								<input name='notification_name' value='<?php echo $pconfig['notification_name']; ?>' /><br/>
212 6840d0e7 Erik Fonnesbeck
								<?=sprintf(gettext("Enter a name for the Growl notifications (default: %s growl alert)."), $g['product_name']); ?>
213 addbcae7 Scott Ullrich
							</td>
214
						</tr>
215 facd2d76 Scott Ullrich
						<tr>
216 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("IP Address"); ?></td>
217 facd2d76 Scott Ullrich
							<td width="78%" class="vtable">
218 846ac60f Colin Fleming
								<input name='ipaddress' value='<?php echo $pconfig['ipaddress']; ?>' /><br/>
219 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the IP address that you would like to send growl notifications to."); ?>
220 facd2d76 Scott Ullrich
							</td>
221
						</tr>
222
						<tr>
223 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Password"); ?></td>
224 facd2d76 Scott Ullrich
							<td width="78%" class="vtable">
225 846ac60f Colin Fleming
								<input name='password' type='password' value='<?php echo $pconfig['password']; ?>' /><br/>
226 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the password of the remote growl notification device."); ?>
227 facd2d76 Scott Ullrich
							</td>
228
						</tr>
229 48b86f62 jim-p
						<tr>
230
							<td valign="top" class="">
231
								&nbsp;
232
							</td>
233
							<td>
234
								<input type='submit' id='test_growl' name='test_growl' value='<?=gettext("Test Growl"); ?>' />
235
								<br /><?= gettext("NOTE: A test notification will be sent even if the service is marked as disabled.") ?>
236
							</td>
237
						</tr>
238 7d8c8a28 Scott Ullrich
						<tr>
239
							<td colspan="2" class="list" height="12">&nbsp;</td>
240
						</tr>	
241 b19369b7 Scott Ullrich
						<!-- SMTP -->
242
						<tr>
243 f0d1edc9 Carlos Eduardo Ramos
							<td colspan="2" valign="top" class="listtopic"><?=gettext("SMTP E-Mail"); ?></td>
244 b19369b7 Scott Ullrich
						</tr>
245 48b86f62 jim-p
						<tr>
246
							<td width="22%" valign="top" class="vncell"><?=gettext("Disable SMTP Notifications"); ?></td>
247
							<td width="78%" class="vtable">
248
								<input type='checkbox' name='disable_smtp' value="yes" <?php if ($pconfig['disable_smtp']) {?>checked="checked"<?php } ?> /><br/>
249
								<?=gettext("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."); ?>
250
							</td>
251
						</tr>
252 b19369b7 Scott Ullrich
						<tr>
253 d58b93d2 jim-p
							<td width="22%" valign="top" class="vncell"><?=gettext("E-Mail server"); ?></td>
254 b19369b7 Scott Ullrich
							<td width="78%" class="vtable">
255 846ac60f Colin Fleming
								<input name='smtpipaddress' value='<?php echo $pconfig['smtpipaddress']; ?>' /><br/>
256 d58b93d2 jim-p
								<?=gettext("This is the FQDN or IP address of the SMTP E-Mail server to which notifications will be sent."); ?>
257 b19369b7 Scott Ullrich
							</td>
258
						</tr>
259 9277b7ef jim-p
						<tr>
260
							<td width="22%" valign="top" class="vncell"><?=gettext("SMTP Port of E-Mail server"); ?></td>
261
							<td width="78%" class="vtable">
262 846ac60f Colin Fleming
								<input name='smtpport' value='<?php echo $pconfig['smtpport']; ?>' />
263
								<input type='checkbox' name='smtpssl' <?php echo $pconfig['smtpssl']; ?> />Enable SSL/TLS Authentication<br/>
264 2d74f1cf Albert S. Causing
								<?=gettext("This is the port of the SMTP E-Mail server, typically 25, 587 (submission) or 465 (smtps, tick ssl/tls checkbox)"); ?>
265 9277b7ef jim-p
							</td>
266
						</tr>
267 72306d5a Scott Ullrich
						<tr>
268 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("From e-mail address"); ?></td>
269 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
270 846ac60f Colin Fleming
								<input name='smtpfromaddress' type='text' value='<?php echo $pconfig['smtpfromaddress']; ?>' /><br/>
271 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the e-mail address that will appear in the from field."); ?>
272 72306d5a Scott Ullrich
							</td>
273
						</tr>
274 b19369b7 Scott Ullrich
						<tr>
275 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail address"); ?></td>
276 b19369b7 Scott Ullrich
							<td width="78%" class="vtable">
277 846ac60f Colin Fleming
								<input name='smtpnotifyemailaddress' type='text' value='<?php echo $pconfig['smtpnotifyemailaddress']; ?>' /><br/>
278 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address that you would like email notifications sent to."); ?>
279 b19369b7 Scott Ullrich
							</td>
280
						</tr>
281 72306d5a Scott Ullrich
						<tr>
282 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth username (optional)"); ?></td>
283 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
284 846ac60f Colin Fleming
								<input name='smtpusername' type='text' value='<?php echo $pconfig['smtpusername']; ?>' /><br/>
285 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address username for SMTP authentication."); ?>
286 72306d5a Scott Ullrich
							</td>
287
						</tr>
288
						<tr>
289 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth password"); ?></td>
290 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
291 846ac60f Colin Fleming
								<input name='smtppassword' type='password' value='<?php echo $pconfig['smtppassword']; ?>' /><br/>
292 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address password for SMTP authentication."); ?>
293 72306d5a Scott Ullrich
							</td>
294
						</tr>
295 48b86f62 jim-p
						<tr>
296
							<td valign="top" class="">
297
								&nbsp;
298
							</td>
299
							<td>
300
								<input type='submit' id='test_smtp' name='test_smtp' value='<?=gettext("Test SMTP"); ?>' />
301
								<br /><?= gettext("NOTE: A test message will be sent even if the service is marked as disabled.") ?>
302
							</td>
303
						</tr>
304 66a346b4 Erik Fonnesbeck
						<tr>
305
							<td colspan="2" class="list" height="12">&nbsp;</td>
306
						</tr>	
307 970ca1b7 Yehuda Katz
						<!-- System Sounds -->
308
						<tr>
309
							<td colspan="2" valign="top" class="listtopic"><?=gettext("System Sounds"); ?></td>
310
						</tr>
311
						<tr>
312
							<td width="22%" valign="top" class="vncell"><?=gettext("Startup/Shutdown Sound"); ?></td>
313
							<td width="78%" class="vtable">
314 846ac60f Colin Fleming
								<input name="disablebeep" type="checkbox" id="disablebeep" value="yes" <?php if ($pconfig['disablebeep']) echo "checked=\"checked\""; ?>  />
315 970ca1b7 Yehuda Katz
								<strong><?=gettext("Disable the startup/shutdown beep"); ?></strong>
316
								<br/>
317
								<span class="vexpl"><?=gettext("When this is checked, startup and shutdown sounds will no longer play."); ?></span>
318
							</td>
319
						</tr>
320 66a346b4 Erik Fonnesbeck
						<tr>
321
							<td colspan="2" class="list" height="12">&nbsp;</td>
322
						</tr>	
323 facd2d76 Scott Ullrich
						<tr>
324
							<td valign="top" class="">
325
								&nbsp;
326
							</td>
327
							<td>
328 846ac60f Colin Fleming
								<input type='submit' id='Submit' name='Submit' value='<?=gettext("Save"); ?>' />
329 facd2d76 Scott Ullrich
							</td>
330
						</tr>
331
					</table>
332 846ac60f Colin Fleming
					</form>
333 facd2d76 Scott Ullrich
				</div>
334
			</td>
335
		</tr>
336
	</table>
337
<?php include("fend.inc"); ?>
338
</body>
339
</html>