Project

General

Profile

Download (10.6 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
			register_via_growl();
117 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']));
118 72306d5a Scott Ullrich
		}
119 b19369b7 Scott Ullrich
120
		// Send test message via smtp
121 8b0d920e Scott Ullrich
		if(file_exists("/var/db/notices_lastmsg.txt"))
122
			unlink("/var/db/notices_lastmsg.txt");
123 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']));
124 b19369b7 Scott Ullrich
125 facd2d76 Scott Ullrich
		pfSenseHeader("system_advanced_notifications.php");
126
		exit;
127
    }
128
}
129
130 f0d1edc9 Carlos Eduardo Ramos
$pgtitle = array(gettext("System"),gettext("Advanced: Notifications"));
131 facd2d76 Scott Ullrich
include("head.inc");
132
133
?>
134
135
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
136
<?php include("fbegin.inc"); ?>
137
	<form action="system_advanced_notifications.php" method="post">
138
		<?php
139
			if ($input_errors)
140
				print_input_errors($input_errors);
141
			if ($savemsg)
142
				print_info_box($savemsg);
143
		?>
144
	</form>
145
	<table width="100%" border="0" cellpadding="0" cellspacing="0">
146
		<tr>
147
			<td>
148
				<?php
149
					$tab_array = array();
150 f0d1edc9 Carlos Eduardo Ramos
					$tab_array[] = array(gettext("Admin Access"), false, "system_advanced_admin.php");
151
					$tab_array[] = array(gettext("Firewall / NAT"), false, "system_advanced_firewall.php");
152
					$tab_array[] = array(gettext("Networking"), false, "system_advanced_network.php");
153
					$tab_array[] = array(gettext("Miscellaneous"), false, "system_advanced_misc.php");
154
					$tab_array[] = array(gettext("System Tunables"), false, "system_advanced_sysctl.php");
155
					$tab_array[] = array(gettext("Notifications"), true, "system_advanced_notifications.php");
156 facd2d76 Scott Ullrich
					display_top_tabs($tab_array);
157
				?>
158
			</td>
159
		</tr>
160
		<tr>
161
			<td id="mainarea">
162
				<div class="tabcont">
163
					<form action="system_advanced_notifications.php" method="post" name="iform">
164
					<table width="100%" border="0" cellpadding="6" cellspacing="0">
165 b19369b7 Scott Ullrich
						<!-- GROWL -->
166 facd2d76 Scott Ullrich
						<tr>
167 f0d1edc9 Carlos Eduardo Ramos
							<td colspan="2" valign="top" class="listtopic"><?=gettext("Growl"); ?></td>
168 facd2d76 Scott Ullrich
						</tr>
169 addbcae7 Scott Ullrich
						<tr>
170 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Registration Name"); ?></td>
171 addbcae7 Scott Ullrich
							<td width="78%" class="vtable">
172
								<input name='name' value='<?php echo $pconfig['name']; ?>'><br/>
173 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the name to register with the Growl server (default: PHP-Growl)."); ?>
174 addbcae7 Scott Ullrich
							</td>
175
						</tr>
176
  					<tr>
177 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification Name"); ?></td>
178 addbcae7 Scott Ullrich
							<td width="78%" class="vtable">
179
								<input name='notification_name' value='<?php echo $pconfig['notification_name']; ?>'><br/>
180 6840d0e7 Erik Fonnesbeck
								<?=sprintf(gettext("Enter a name for the Growl notifications (default: %s growl alert)."), $g['product_name']); ?>
181 addbcae7 Scott Ullrich
							</td>
182
						</tr>
183 facd2d76 Scott Ullrich
						<tr>
184 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("IP Address"); ?></td>
185 facd2d76 Scott Ullrich
							<td width="78%" class="vtable">
186 d0e705e1 Scott Ullrich
								<input name='ipaddress' value='<?php echo $pconfig['ipaddress']; ?>'><br/>
187 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the IP address that you would like to send growl notifications to."); ?>
188 facd2d76 Scott Ullrich
							</td>
189
						</tr>
190
						<tr>
191 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Password"); ?></td>
192 facd2d76 Scott Ullrich
							<td width="78%" class="vtable">
193 d0e705e1 Scott Ullrich
								<input name='password' type='password' value='<?php echo $pconfig['password']; ?>'><br/>
194 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the password of the remote growl notification device."); ?>
195 facd2d76 Scott Ullrich
							</td>
196
						</tr>
197 7d8c8a28 Scott Ullrich
						<tr>
198
							<td colspan="2" class="list" height="12">&nbsp;</td>
199
						</tr>	
200 b19369b7 Scott Ullrich
						<!-- SMTP -->
201
						<tr>
202 f0d1edc9 Carlos Eduardo Ramos
							<td colspan="2" valign="top" class="listtopic"><?=gettext("SMTP E-Mail"); ?></td>
203 b19369b7 Scott Ullrich
						</tr>
204
						<tr>
205 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("IP Address of E-Mail server"); ?></td>
206 b19369b7 Scott Ullrich
							<td width="78%" class="vtable">
207
								<input name='smtpipaddress' value='<?php echo $pconfig['smtpipaddress']; ?>'><br/>
208 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the IP address of the SMTP E-Mail server that will be used to send notifications to."); ?>
209 b19369b7 Scott Ullrich
							</td>
210
						</tr>
211 9277b7ef jim-p
						<tr>
212
							<td width="22%" valign="top" class="vncell"><?=gettext("SMTP Port of E-Mail server"); ?></td>
213
							<td width="78%" class="vtable">
214 2d74f1cf Albert S. Causing
								<input name='smtpport' value='<?php echo $pconfig['smtpport']; ?>'>
215
								<input type='checkbox' name='smtpssl' <?php echo $pconfig['smtpssl']; ?>>Enable SSL/TLS Authentication<br/>
216
								<?=gettext("This is the port of the SMTP E-Mail server, typically 25, 587 (submission) or 465 (smtps, tick ssl/tls checkbox)"); ?>
217 9277b7ef jim-p
							</td>
218
						</tr>
219 72306d5a Scott Ullrich
						<tr>
220 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("From e-mail address"); ?></td>
221 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
222
								<input name='smtpfromaddress' type='input' value='<?php echo $pconfig['smtpfromaddress']; ?>'><br/>
223 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("This is the e-mail address that will appear in the from field."); ?>
224 72306d5a Scott Ullrich
							</td>
225
						</tr>
226 b19369b7 Scott Ullrich
						<tr>
227 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail address"); ?></td>
228 b19369b7 Scott Ullrich
							<td width="78%" class="vtable">
229
								<input name='smtpnotifyemailaddress' type='input' value='<?php echo $pconfig['smtpnotifyemailaddress']; ?>'><br/>
230 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address that you would like email notifications sent to."); ?>
231 b19369b7 Scott Ullrich
							</td>
232
						</tr>
233 72306d5a Scott Ullrich
						<tr>
234 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth username (optional)"); ?></td>
235 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
236
								<input name='smtpusername' type='input' value='<?php echo $pconfig['smtpusername']; ?>'><br/>
237 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address username for SMTP authentication."); ?>
238 72306d5a Scott Ullrich
							</td>
239
						</tr>
240
						<tr>
241 f0d1edc9 Carlos Eduardo Ramos
							<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth password"); ?></td>
242 72306d5a Scott Ullrich
							<td width="78%" class="vtable">
243
								<input name='smtppassword' type='password' value='<?php echo $pconfig['smtppassword']; ?>'><br/>
244 f0d1edc9 Carlos Eduardo Ramos
								<?=gettext("Enter the e-mail address password for SMTP authentication."); ?>
245 72306d5a Scott Ullrich
							</td>
246
						</tr>
247 facd2d76 Scott Ullrich
						<tr>
248
							<td valign="top" class="">
249
								&nbsp;
250
							</td>
251
							<td>
252
								<br/>
253 f0d1edc9 Carlos Eduardo Ramos
								<input type='submit' id='Submit' name='Submit' value='<?=gettext("Save"); ?>'></form>
254 facd2d76 Scott Ullrich
							</td>
255
						</tr>
256
					</table>
257
				</div>
258
			</td>
259
		</tr>
260
	</table>
261
<?php include("fend.inc"); ?>
262
</body>
263
</html>