Project

General

Profile

Download (10.7 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 66184513 Scott Ullrich
if($config['notifications']['growl']['password']) 
45
	$pconfig['password'] = $config['notifications']['growl']['password'];
46
if($config['notifications']['growl']['ipaddress']) 
47
	$pconfig['ipaddress'] = $config['notifications']['growl']['ipaddress'];
48 d9252b1f Scott Ullrich
49 addbcae7 Scott Ullrich
if($config['notifications']['growl']['notification_name']) 
50
	$pconfig['notification_name'] = $config['notifications']['growl']['notification_name'];
51
else
52 ebb57fe2 Warren Baker
  $pconfig['notification_name'] = "{$g['product_name']} growl alert";
53 addbcae7 Scott Ullrich
  
54
if($config['notifications']['growl']['name']) 
55
	$pconfig['name'] = $config['notifications']['growl']['name'];
56
else
57
  $pconfig['name'] = 'PHP-Growl';
58
59
60 b19369b7 Scott Ullrich
// SMTP
61 4090c90f Scott Ullrich
if($config['notifications']['smtp']['ipaddress']) 
62
	$pconfig['smtpipaddress'] = $config['notifications']['smtp']['ipaddress'];
63 9277b7ef jim-p
if($config['notifications']['smtp']['port'])
64
	$pconfig['smtpport'] = $config['notifications']['smtp']['port'];
65 2d74f1cf Albert S. Causing
if($config['notifications']['smtp']['ssl'])
66
	$pconfig['smtpssl'] = $config['notifications']['smtp']['ssl'];
67 b19369b7 Scott Ullrich
if($config['notifications']['smtp']['notifyemailaddress']) 
68
	$pconfig['smtpnotifyemailaddress'] = $config['notifications']['smtp']['notifyemailaddress'];
69 72306d5a Scott Ullrich
if($config['notifications']['smtp']['username']) 
70
	$pconfig['smtpusername'] = $config['notifications']['smtp']['username'];
71
if($config['notifications']['smtp']['password']) 
72
	$pconfig['smtppassword'] = $config['notifications']['smtp']['password'];
73
if($config['notifications']['smtp']['fromaddress']) 
74
	$pconfig['smtpfromaddress'] = $config['notifications']['smtp']['fromaddress'];
75 b19369b7 Scott Ullrich
76 facd2d76 Scott Ullrich
if ($_POST) {
77
78
	unset($input_errors);
79
	$pconfig = $_POST;
80
81
	/* if this is an AJAX caller then handle via JSON */
82
	if (isAjax() && is_array($input_errors)) {
83
		input_errors2Ajax($input_errors);
84
		exit;
85
	}
86
87
	if ($_POST['apply']) {
88
		$retval = 0;
89
		system_setup_sysctl();		
90
		$savemsg = get_std_save_message($retval);
91
	}
92
93 f0d1edc9 Carlos Eduardo Ramos
	if ($_POST['Submit'] == gettext("Save")) {
94 facd2d76 Scott Ullrich
		$tunableent = array();
95
96 b19369b7 Scott Ullrich
		// Growl
97 1afa87e5 Scott Ullrich
		$config['notifications']['growl']['ipaddress'] = $_POST['ipaddress'];
98
		$config['notifications']['growl']['password'] = $_POST['password'];
99 addbcae7 Scott Ullrich
		$config['notifications']['growl']['name'] = $_POST['name'];
100
		$config['notifications']['growl']['notification_name'] = $_POST['notification_name'];
101 facd2d76 Scott Ullrich
102 b19369b7 Scott Ullrich
		// SMTP
103
		$config['notifications']['smtp']['ipaddress'] = $_POST['smtpipaddress'];
104 9277b7ef jim-p
		$config['notifications']['smtp']['port'] = $_POST['smtpport'];
105 2d74f1cf Albert S. Causing
		$config['notifications']['smtp']['ssl'] = isset($_POST['smtpssl']) ? 'checked' : 'unchecked';
106 b19369b7 Scott Ullrich
		$config['notifications']['smtp']['notifyemailaddress'] = $_POST['smtpnotifyemailaddress'];
107 72306d5a Scott Ullrich
		$config['notifications']['smtp']['username'] = $_POST['smtpusername'];
108
		$config['notifications']['smtp']['password'] = $_POST['smtppassword'];
109
		$config['notifications']['smtp']['fromaddress'] = $_POST['smtpfromaddress'];
110 b19369b7 Scott Ullrich
111 facd2d76 Scott Ullrich
		write_config();
112
113 b19369b7 Scott Ullrich
		// Send test message via growl
114 72306d5a Scott Ullrich
		if($config['notifications']['growl']['ipaddress'] && 
115
		   $config['notifications']['growl']['password'] = $_POST['password']) {
116 ac429b42 Scott Ullrich
			unlink_if_exists($g['vardb_path'] . "/growlnotices_lastmsg.txt");
117 72306d5a Scott Ullrich
			register_via_growl();
118 6840d0e7 Erik Fonnesbeck
			notify_via_growl(sprintf(gettext("This is a test message from %s.  It is safe to ignore this message."), $g['product_name']));
119 72306d5a Scott Ullrich
		}
120 b19369b7 Scott Ullrich
121
		// Send test message via smtp
122 8b0d920e Scott Ullrich
		if(file_exists("/var/db/notices_lastmsg.txt"))
123
			unlink("/var/db/notices_lastmsg.txt");
124 6840d0e7 Erik Fonnesbeck
		$savemsg = notify_via_smtp(sprintf(gettext("This is a test message from %s.  It is safe to ignore this message."), $g['product_name']));
125 b19369b7 Scott Ullrich
126 facd2d76 Scott Ullrich
		pfSenseHeader("system_advanced_notifications.php");
127
		exit;
128
    }
129
}
130
131 f0d1edc9 Carlos Eduardo Ramos
$pgtitle = array(gettext("System"),gettext("Advanced: Notifications"));
132 facd2d76 Scott Ullrich
include("head.inc");
133
134
?>
135
136
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
137
<?php include("fbegin.inc"); ?>
138
	<form action="system_advanced_notifications.php" method="post">
139
		<?php
140
			if ($input_errors)
141
				print_input_errors($input_errors);
142
			if ($savemsg)
143
				print_info_box($savemsg);
144
		?>
145
	</form>
146
	<table width="100%" border="0" cellpadding="0" cellspacing="0">
147
		<tr>
148
			<td>
149
				<?php
150
					$tab_array = array();
151 f0d1edc9 Carlos Eduardo Ramos
					$tab_array[] = array(gettext("Admin Access"), false, "system_advanced_admin.php");
152
					$tab_array[] = array(gettext("Firewall / NAT"), false, "system_advanced_firewall.php");
153
					$tab_array[] = array(gettext("Networking"), false, "system_advanced_network.php");
154
					$tab_array[] = array(gettext("Miscellaneous"), false, "system_advanced_misc.php");
155
					$tab_array[] = array(gettext("System Tunables"), false, "system_advanced_sysctl.php");
156
					$tab_array[] = array(gettext("Notifications"), true, "system_advanced_notifications.php");
157 facd2d76 Scott Ullrich
					display_top_tabs($tab_array);
158
				?>
159
			</td>
160
		</tr>
161
		<tr>
162
			<td id="mainarea">
163
				<div class="tabcont">
164
					<form action="system_advanced_notifications.php" method="post" name="iform">
165
					<table width="100%" border="0" cellpadding="6" cellspacing="0">
166 b19369b7 Scott Ullrich
						<!-- GROWL -->
167 facd2d76 Scott Ullrich
						<tr>
168 f0d1edc9 Carlos Eduardo Ramos
							<td colspan="2" valign="top" class="listtopic"><?=gettext("Growl"); ?></td>
169 facd2d76 Scott Ullrich
						</tr>
170 addbcae7 Scott Ullrich
						<tr>
171 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Registration Name"); ?></td>
172 addbcae7 Scott Ullrich
							<td width="78%" class="vtable">
173
								<input name='name' value='<?php echo $pconfig['name']; ?>'><br/>
174 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the name to register with the Growl server (default: PHP-Growl)."); ?>
175 addbcae7 Scott Ullrich
							</td>
176
						</tr>
177
  					<tr>
178 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification Name"); ?></td>
179 addbcae7 Scott Ullrich
							<td width="78%" class="vtable">
180
								<input name='notification_name' value='<?php echo $pconfig['notification_name']; ?>'><br/>
181 6840d0e7 Erik Fonnesbeck
								<?=sprintf(gettext("Enter a name for the Growl notifications (default: %s growl alert)."), $g['product_name']); ?>
182 addbcae7 Scott Ullrich
							</td>
183
						</tr>
184 facd2d76 Scott Ullrich
						<tr>
185 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("IP Address"); ?></td>
186 facd2d76 Scott Ullrich
							<td width="78%" class="vtable">
187 d0e705e1 Scott Ullrich
								<input name='ipaddress' value='<?php echo $pconfig['ipaddress']; ?>'><br/>
188 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the IP address that you would like to send growl notifications to."); ?>
189 facd2d76 Scott Ullrich
							</td>
190
						</tr>
191
						<tr>
192 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Password"); ?></td>
193 facd2d76 Scott Ullrich
							<td width="78%" class="vtable">
194 d0e705e1 Scott Ullrich
								<input name='password' type='password' value='<?php echo $pconfig['password']; ?>'><br/>
195 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the password of the remote growl notification device."); ?>
196 facd2d76 Scott Ullrich
							</td>
197
						</tr>
198 7d8c8a28 Scott Ullrich
						<tr>
199
							<td colspan="2" class="list" height="12">&nbsp;</td>
200
						</tr>	
201 b19369b7 Scott Ullrich
						<!-- SMTP -->
202
						<tr>
203 f0d1edc9 Carlos Eduardo Ramos
							<td colspan="2" valign="top" class="listtopic"><?=gettext("SMTP E-Mail"); ?></td>
204 b19369b7 Scott Ullrich
						</tr>
205
						<tr>
206 56771d56 jim-p
							<td width="22%" valign="top" class="vncell"><?=gettext("E-Mail server"); ?></td>
207 b19369b7 Scott Ullrich
							<td width="78%" class="vtable">
208
								<input name='smtpipaddress' value='<?php echo $pconfig['smtpipaddress']; ?>'><br/>
209 56771d56 jim-p
								<?=gettext("This is the FQDN or IP address of the SMTP E-Mail server to which notifications will be sent."); ?>
210 b19369b7 Scott Ullrich
							</td>
211
						</tr>
212 9277b7ef jim-p
						<tr>
213
							<td width="22%" valign="top" class="vncell"><?=gettext("SMTP Port of E-Mail server"); ?></td>
214
							<td width="78%" class="vtable">
215 2d74f1cf Albert S. Causing
								<input name='smtpport' value='<?php echo $pconfig['smtpport']; ?>'>
216
								<input type='checkbox' name='smtpssl' <?php echo $pconfig['smtpssl']; ?>>Enable SSL/TLS Authentication<br/>
217
								<?=gettext("This is the port of the SMTP E-Mail server, typically 25, 587 (submission) or 465 (smtps, tick ssl/tls checkbox)"); ?>
218 9277b7ef jim-p
							</td>
219
						</tr>
220 72306d5a Scott Ullrich
						<tr>
221 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("From e-mail address"); ?></td>
222 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
223
								<input name='smtpfromaddress' type='input' value='<?php echo $pconfig['smtpfromaddress']; ?>'><br/>
224 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the e-mail address that will appear in the from field."); ?>
225 72306d5a Scott Ullrich
							</td>
226
						</tr>
227 b19369b7 Scott Ullrich
						<tr>
228 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail address"); ?></td>
229 b19369b7 Scott Ullrich
							<td width="78%" class="vtable">
230
								<input name='smtpnotifyemailaddress' type='input' value='<?php echo $pconfig['smtpnotifyemailaddress']; ?>'><br/>
231 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address that you would like email notifications sent to."); ?>
232 b19369b7 Scott Ullrich
							</td>
233
						</tr>
234 72306d5a Scott Ullrich
						<tr>
235 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth username (optional)"); ?></td>
236 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
237
								<input name='smtpusername' type='input' value='<?php echo $pconfig['smtpusername']; ?>'><br/>
238 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address username for SMTP authentication."); ?>
239 72306d5a Scott Ullrich
							</td>
240
						</tr>
241
						<tr>
242 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth password"); ?></td>
243 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
244
								<input name='smtppassword' type='password' value='<?php echo $pconfig['smtppassword']; ?>'><br/>
245 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address password for SMTP authentication."); ?>
246 72306d5a Scott Ullrich
							</td>
247
						</tr>
248 facd2d76 Scott Ullrich
						<tr>
249
							<td valign="top" class="">
250
								&nbsp;
251
							</td>
252
							<td>
253
								<br/>
254 f0d1edc9 Carlos Eduardo Ramos
								<input type='submit' id='Submit' name='Submit' value='<?=gettext("Save"); ?>'></form>
255 facd2d76 Scott Ullrich
							</td>
256
						</tr>
257
					</table>
258
				</div>
259
			</td>
260
		</tr>
261
	</table>
262
<?php include("fend.inc"); ?>
263
</body>
264
</html>