Project

General

Profile

Download (5.6 KB) Statistics
| Branch: | Tag: | Revision:
1
<?php
2
/*
3
	vpn_pppoe.php
4
*/
5
/* ====================================================================
6
 *	Copyright (c)  2004-2015  Electric Sheep Fencing, LLC. All rights reserved.
7
 *
8
 *	Redistribution and use in source and binary forms, with or without modification,
9
 *	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
16
 *		the documentation and/or other materials provided with the
17
 *		distribution.
18
 *
19
 *	3. All advertising materials mentioning features or use of this software
20
 *		must display the following acknowledgment:
21
 *		"This product includes software developed by the pfSense Project
22
 *		 for use in the pfSense software distribution. (http://www.pfsense.org/).
23
 *
24
 *	4. The names "pfSense" and "pfSense Project" must not be used to
25
 *		 endorse or promote products derived from this software without
26
 *		 prior written permission. For written permission, please contact
27
 *		 coreteam@pfsense.org.
28
 *
29
 *	5. Products derived from this software may not be called "pfSense"
30
 *		nor may "pfSense" appear in their names without prior written
31
 *		permission of the Electric Sheep Fencing, LLC.
32
 *
33
 *	6. Redistributions of any form whatsoever must retain the following
34
 *		acknowledgment:
35
 *
36
 *	"This product includes software developed by the pfSense Project
37
 *	for use in the pfSense software distribution (http://www.pfsense.org/).
38
 *
39
 *	THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
40
 *	EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41
 *	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42
 *	PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR
43
 *	ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44
 *	SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45
 *	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46
 *	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
 *	HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48
 *	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49
 *	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50
 *	OF THE POSSIBILITY OF SUCH DAMAGE.
51
 *
52
 *	====================================================================
53
 *
54
 */
55
/*
56
	pfSense_MODULE: pppoe
57
*/
58

    
59
##|+PRIV
60
##|*IDENT=page-services-pppoeserver
61
##|*NAME=Services: PPPoE Server page
62
##|*DESCR=Allow access to the 'Services: PPPoE Server' page.
63
##|*MATCH=vpn_pppoe.php*
64
##|-PRIV
65

    
66
require_once("guiconfig.inc");
67
require_once("filter.inc");
68
require_once("vpn.inc");
69

    
70
if (!is_array($config['pppoes']['pppoe'])) {
71
	$config['pppoes']['pppoe'] = array();
72
}
73

    
74
$a_pppoes = &$config['pppoes']['pppoe'];
75

    
76
if ($_POST) {
77
	$pconfig = $_POST;
78

    
79
	if ($_POST['apply']) {
80
		if (file_exists("{$g['tmp_path']}/.vpn_pppoe.apply")) {
81
			$toapplylist = unserialize(file_get_contents("{$g['tmp_path']}/.vpn_pppoe.apply"));
82
			foreach ($toapplylist as $pppoeid) {
83
				if (!is_numeric($pppoeid)) {
84
					continue;
85
				}
86
				if (is_array($config['pppoes']['pppoe'])) {
87
					foreach ($config['pppoes']['pppoe'] as $pppoe) {
88
						if ($pppoe['pppoeid'] == $pppoeid) {
89
							vpn_pppoe_configure($pppoe);
90
							break;
91
						}
92
					}
93
				}
94
			}
95
			@unlink("{$g['tmp_path']}/.vpn_pppoe.apply");
96
		}
97
		$retval = 0;
98
		$retval |= filter_configure();
99
		$savemsg = get_std_save_message($retval);
100
		clear_subsystem_dirty('vpnpppoe');
101
	}
102
}
103

    
104
if ($_GET['act'] == "del") {
105
	if ($a_pppoes[$_GET['id']]) {
106
		if ("{$g['varrun_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid'] . "-vpn.pid") {
107
			killbypid("{$g['varrun_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid'] . "-vpn.pid");
108
		}
109
		if (is_dir("{$g['varetc_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid'])) {
110
			mwexec("/bin/rm -r {$g['varetc_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid']);
111
		}
112
		unset($a_pppoes[$_GET['id']]);
113
		write_config();
114
		header("Location: vpn_pppoe.php");
115
		exit;
116
	}
117
}
118

    
119
$pgtitle = array(gettext("Services"),gettext("PPPoE Server"));
120
$shortcut_section = "pppoes";
121
include("head.inc");
122

    
123
if ($savemsg)
124
	print_info_box($savemsg, 'success');
125

    
126
if (is_subsystem_dirty('vpnpppoe'))
127
	print_info_box_np(gettext('The PPPoE entry list has been changed') . '.<br />' . gettext('You must apply the changes in order for them to take effect.'));
128
?>
129

    
130
<div class="table-responsive">
131
	<table class="table table-striped table-hover table-condensed">
132
		<thead>
133
			<tr>
134
				<th><?=gettext("Interface")?></th>
135
				<th><?=gettext("Local IP")?></th>
136
				<th><?=gettext("Number of users")?></th>
137
				<th><?=gettext("Description")?></th>
138
				<th><!-- Action buttons --></th>
139
			</tr>
140
		</thead>
141
		<tbody>
142
<?php
143
$i = 0;
144
foreach ($a_pppoes as $pppoe):
145
?>
146
			<tr>
147
				<td>
148
					<?=htmlspecialchars(convert_friendly_interface_to_friendly_descr($pppoe['interface']))?>
149
				</td>
150
				<td>
151
					<?=htmlspecialchars($pppoe['localip'])?>
152
				</td>
153
				<td>
154
					<?=htmlspecialchars($pppoe['n_pppoe_units'])?>
155
				</td>
156
				<td>
157
					<?=htmlspecialchars($pppoe['descr'])?>
158
				</td>
159
				<td>
160
					<a class="fa fa-pencil"	title="<?=gettext('Edit PPPoE instance')?>"	href="vpn_pppoe_edit.php?id=<?=$i?>"></a>
161
					<a class="fa fa-trash" title="<?=gettext('Delete PPPoE instance')?>" href="vpn_pppoe.php?act=del&amp;id=<?=$i?>"></a>
162
				</td>
163
			</tr>
164
<?php
165
	$i++;
166
endforeach;
167
?>
168
		</tbody>
169
	</table>
170
</div>
171

    
172
<nav class="action-buttons">
173
	<a href="vpn_pppoe_edit.php" class="btn btn-success">
174
		<i class="fa fa-plus icon-embed-btn"></i>
175
		<?=gettext("Add")?>
176
	</a>
177
</nav>
178

    
179
<?php
180
include("foot.inc");
(231-231/234)