Project

General

Profile

Download (22.2 KB) Statistics
| Branch: | Tag: | Revision:
1 fbf672cb Matthew Grooms
<?php
2
/*
3
    system_authservers.php
4
5
    Copyright (C) 2008 Shrew Soft Inc.
6
    All rights reserved.
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
30
##|+PRIV
31
##|*IDENT=page-system-authservers
32
##|*NAME=System: Authentication Servers
33
##|*DESCR=Allow access to the 'System: Authentication Servers' page.
34
##|*MATCH=system_authservers.php*
35
##|-PRIV
36
37
require("guiconfig.inc");
38
39
$pgtitle = array("System", "Authentication Servers");
40
41
$id = $_GET['id'];
42
if (isset($_POST['id']))
43
	$id = $_POST['id'];
44
45
if (!is_array($config['system']['authserver']))
46
	$config['system']['authserver'] = array();
47
48
$a_server =& $config['system']['authserver'];
49
50
$act = $_GET['act'];
51
if ($_POST['act'])
52
	$act = $_POST['act'];
53
54
if ($act == "del") {
55
56
	if (!$a_server[$_GET['id']]) {
57
		pfSenseHeader("system_authservers.php");
58
		exit;
59
	}
60
61
	$serverdeleted = $a_server[$_GET['id']]['name'];
62
	unset($a_server[$_GET['id']]);
63
	write_config();
64
	$savemsg = gettext("Authentication Server")." {$serverdeleted} ".
65
				gettext("successfully deleted")."<br/>";
66
}
67
68
if ($act == "edit") {
69
	if (isset($id) && $a_server[$id]) {
70
71
		$pconfig['type'] = $a_server[$id]['type'];
72
		$pconfig['name'] = $a_server[$id]['name'];
73
74
		if ($pconfig['type'] == "ldap") {
75
			$pconfig['ldap_host'] = $a_server[$id]['host'];
76
			$pconfig['ldap_port'] = $a_server[$id]['ldap_port'];
77
			$pconfig['ldap_urltype'] = $a_server[$id]['ldap_urltype'];
78
			$pconfig['ldap_protver'] = $a_server[$id]['ldap_protver'];
79
			$pconfig['ldap_scope'] = $a_server[$id]['ldap_scope'];
80
			$pconfig['ldap_basedn'] = $a_server[$id]['ldap_basedn'];
81
			$pconfig['ldap_binddn'] = $a_server[$id]['ldap_binddn'];
82
			$pconfig['ldap_bindpw'] = $a_server[$id]['ldap_bindpw'];
83
			$pconfig['ldap_attr_user'] = $a_server[$id]['ldap_attr_user'];
84
			$pconfig['ldap_attr_group'] = $a_server[$id]['ldap_attr_group'];
85
			$pconfig['ldap_attr_member'] = $a_server[$id]['ldap_attr_member'];
86
87
			if (!$pconfig['ldap_binddn'] || !$pconfig['ldap_bindpw'])
88
				$pconfig['ldap_anon'] = true;
89
		}
90
91
		if ($pconfig['type'] == "radius") {
92
			$pconfig['radius_host'] = $a_server[$id]['host'];
93
			$pconfig['radius_auth_port'] = $a_server[$id]['radius_auth_port'];
94
			$pconfig['radius_acct_port'] = $a_server[$id]['radius_acct_port'];
95
96
			if ($pconfig['radius_auth_port'] &&
97
				$pconfig['radius_acct_port'] ) {
98
				$pconfig['radius_srvcs'] = "both";
99
			}
100
101
			if ( $pconfig['radius_auth_port'] &&
102
				!$pconfig['radius_acct_port'] ) {
103
				$pconfig['radius_srvcs'] = "auth";
104
				$pconfig['radius_acct_port'] = 813;
105
			}
106
107
			if (!$pconfig['radius_auth_port'] &&
108
				 $pconfig['radius_acct_port'] ) {
109
				$pconfig['radius_srvcs'] = "acct";
110
				$pconfig['radius_auth_port'] = 812;
111
			}
112
113
		}
114
	}
115
}
116
117
if ($act == "new") {
118
	$pconfig['ldap_protver'] = 3;
119
	$pconfig['ldap_anon'] = true;
120
	$pconfig['radius_srvcs'] = "both";
121
	$pconfig['radius_auth_port'] = "812";
122
	$pconfig['radius_acct_port'] = "813";
123
}
124
125
if ($_POST) {
126
	unset($input_errors);
127
	$pconfig = $_POST;
128
129
	/* input validation */
130
131
	if ($pconfig['type'] == "ldap") {
132
		$reqdfields = explode(" ", "name type ldap_host ldap_port ".
133
						"ldap_urltype ldap_protver ldap_scope ldap_basedn ".
134
						"ldap_attr_user ldap_attr_group ldap_attr_member");
135
		$reqdfieldsn = explode(",", "Descriptive name,Type,Hostname or IP,".
136
						"Port value,Transport,Protocol version,Search level,".
137
						"Search Base DN,User naming Attribute,".
138
						"Group naming Attribute,Group member attribute");
139
140
		if (!$pconfig['ldap_anon']) {
141
			$reqdfields[] = "ldap_binddn";
142
			$reqdfields[] = "ldap_bindpw";
143
			$reqdfieldsn[] = "Bind user DN";
144
			$reqdfieldsn[] = "Bind Password";
145
		}
146
	}
147
148
	if ($pconfig['type'] == "radius") {
149
		$reqdfields = explode(" ", "name type radius_host radius_srvcs");
150
		$reqdfieldsn = explode(",", "Descriptive name,Type,Hostname or IP,".
151
						"Services");
152
153
		if ($pconfig['radisu_srvcs'] == "both" ||
154
			$pconfig['radisu_srvcs'] == "auth") {
155
			$reqdfields[] = "radius_auth_port";
156
			$reqdfieldsn[] = "Authentication port value";
157
		}
158
159
		if ($pconfig['radisu_srvcs'] == "both" ||
160
			$pconfig['radisu_srvcs'] == "acct") {
161
			$reqdfields[] = "radius_acct_port";
162
			$reqdfieldsn[] = "Accounting port value";
163
		}
164
165
		if (!isset($id)) {
166
			$reqdfields[] = "radius_secret";
167
			$reqdfieldsn[] = "Shared Secret";
168
		}
169
	}
170
171
	do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
172
173
	if (preg_match("/[^a-zA-Z0-9\.\-_]/", $_POST['host']))
174
		$input_errors[] = gettext("The host name contains invalid characters.");
175
176
	/* if this is an AJAX caller then handle via JSON */
177
	if (isAjax() && is_array($input_errors)) {
178
		input_errors2Ajax($input_errors);
179
		exit;
180
	}
181
182
	if (!$input_errors) {
183
		$server = array();
184
		$server['refid'] = uniqid();
185
		if (isset($id) && $a_server[$id])
186
			$server = $a_server[$id];
187
188
		$server['type'] = $pconfig['type'];
189
		$server['name'] = $pconfig['name'];
190
191
		if ($server['type'] == "ldap") {
192
193
			$server['host'] = $pconfig['ldap_host'];
194
			$server['ldap_port'] = $pconfig['ldap_port'];
195
			$server['ldap_urltype'] = $pconfig['ldap_urltype'];
196
			$server['ldap_protver'] = $pconfig['ldap_protver'];
197
			$server['ldap_scope'] = $pconfig['ldap_scope'];
198
			$server['ldap_basedn'] = $pconfig['ldap_basedn'];
199
			$server['ldap_attr_user'] = $pconfig['ldap_attr_user'];
200
			$server['ldap_attr_group'] = $pconfig['ldap_attr_group'];
201
			$server['ldap_attr_member'] = $pconfig['ldap_attr_member'];
202
203
			if (!$pconfig['ldap_anon']) {
204
				$server['ldap_binddn'] = $pconfig['ldap_binddn'];
205
				$server['ldap_bindpw'] = $pconfig['ldap_bindpw'];
206
			} else {
207
				unset($server['ldap_binddn']);
208
				unset($server['ldap_bindpw']);
209
			}
210
		}
211
212
		if ($server['type'] == "radius") {
213
214
			$server['host'] = $pconfig['radius_host'];
215
216
			if ($pconfig['radius_secret'])
217
				$server['radius_secret'] = $pconfig['radius_secret'];
218
219
			if ($pconfig['radius_srvcs'] == "both") {
220
				$server['radius_auth_port'] = $pconfig['radius_auth_port'];
221
				$server['radius_acct_port'] = $pconfig['radius_acct_port'];
222
			}
223
224
			if ($pconfig['radius_srvcs'] == "auth") {
225
				$server['radius_auth_port'] = $pconfig['radius_auth_port'];
226
				unset($server['radius_acct_port']);
227
			}
228
229
			if ($pconfig['radius_srvcs'] == "acct") {
230
				$server['radius_acct_port'] = $pconfig['radius_acct_port'];
231
				unset($server['radius_auth_port']);
232
			}
233
		}
234
235
		if (isset($id) && $a_server[$id])
236
			$a_server[$id] = $server;
237
		else
238
			$a_server[] = $server;
239
240
		write_config();
241
242
		pfSenseHeader("system_authservers.php");
243
	}
244
}
245
246
include("head.inc");
247
?>
248
249
<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
250
<?php include("fbegin.inc"); ?>
251
<script type="text/javascript">
252
<!--
253
254
function server_typechange(type) {
255
256
	if (!type) {
257
		index = document.iform.type.selectedIndex;
258
		type = document.iform.type.options[index].value;
259
	}
260
261
    switch (type) {
262
		case "ldap":
263
			document.getElementById("ldap").style.display="";
264
			document.getElementById("radius").style.display="none";
265
			break;
266
		case "radius":
267
			document.getElementById("ldap").style.display="none";
268
			document.getElementById("radius").style.display="";
269
			break;
270
	}
271
}
272
273
function ldap_urlchange() {
274
    switch (document.iform.ldap_urltype.selectedIndex) {
275
<?php
276
	$index = 0;
277
	foreach ($ldap_urltypes as $urltype => $urlport):
278
?>
279
		case <?=$index;?>:
280
			document.iform.ldap_port.value = "<?=$urlport;?>";
281
			break;
282
<?php
283
		$index++;
284
	endforeach;
285
?>
286
	}
287
}
288
289
function ldap_bindchange() {
290
291
	if (document.iform.ldap_anon.checked)
292
		document.getElementById("ldap_bind").style.display="none";
293
    else
294
		document.getElementById("ldap_bind").style.display="";
295
}
296
297
function ldap_tmplchange(){
298
    switch (document.iform.ldap_tmpltype.selectedIndex) {
299
<?php
300
	$index = 0;
301
	foreach ($ldap_templates as $tmpldata):
302
?>
303
		case <?=$index;?>:
304
			document.iform.ldap_attr_user.value = "<?=$tmpldata['attr_user'];?>";
305
			document.iform.ldap_attr_group.value = "<?=$tmpldata['attr_group'];?>";
306
			document.iform.ldap_attr_member.value = "<?=$tmpldata['attr_member'];?>";
307
			break;
308
<?php
309
		$index++;
310
	endforeach;
311
?>
312
	}
313
}
314
315
function radius_srvcschange(){
316
    switch (document.iform.radius_srvcs.selectedIndex) {
317
		case 0: // both
318
			document.getElementById("radius_auth").style.display="";
319
			document.getElementById("radius_acct").style.display="";
320
			break;
321
		case 1: // authentication
322
			document.getElementById("radius_auth").style.display="";
323
			document.getElementById("radius_acct").style.display="none";
324
			break;
325
		case 2: // accounting
326
			document.getElementById("radius_auth").style.display="none";
327
			document.getElementById("radius_acct").style.display="";
328
			break;
329
	}
330
}
331
332
//-->
333
</script>
334
<?php
335
	if ($input_errors)
336
		print_input_errors($input_errors);
337
	if ($savemsg)
338
		print_info_box($savemsg);
339
?>
340
<table width="100%" border="0" cellpadding="0" cellspacing="0">
341
	<tr>
342 e30001cf Matthew Grooms
		<td>
343 fbf672cb Matthew Grooms
		<?php
344
			$tab_array = array();
345
			$tab_array[] = array(gettext("Users"), false, "system_usermanager.php");
346
			$tab_array[] = array(gettext("Groups"), false, "system_groupmanager.php");
347
			$tab_array[] = array(gettext("Settings"), false, "system_usermanager_settings.php");
348 d799787e Matthew Grooms
			$tab_array[] = array(gettext("Servers"), true, "system_authservers.php");
349 fbf672cb Matthew Grooms
			display_top_tabs($tab_array);
350
		?>
351
		</td>
352
	</tr>
353
	<tr>
354 e30001cf Matthew Grooms
		<td id="mainarea">
355
			<div class="tabcont">
356
357
				<?php if ($act == "new" || $act == "edit" || $input_errors): ?>
358
359
				<form action="system_authservers.php" method="post" name="iform" id="iform">
360
					<table width="100%" border="0" cellpadding="6" cellspacing="0">
361
						<tr>
362
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Descriptive name");?></td>
363
							<td width="78%" class="vtable">
364
								<input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>"/>
365
							</td>
366
						</tr>
367
						<tr>
368
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Type");?></td>
369
							<td width="78%" class="vtable">
370
								<?php if (!isset($id)): ?>
371
								<select name='type' id='type' class="formselect" onchange='server_typechange()'>
372
								<?php
373
									foreach ($auth_server_types as $typename => $typedesc ):
374
										$selected = "";
375
										if ($pconfig['type'] == $typename)
376
											$selected = "selected";
377
								?>
378
									<option value="<?=$typename;?>" <?=$selected;?>><?=$typedesc;?></option>
379
								<?php endforeach; ?>
380
								</select>
381
								<?php else: ?>
382
								<strong><?=$auth_server_types[$pconfig['type']];?></strong>
383
								<input name='type' type='hidden' id='type' value="<?=htmlspecialchars($pconfig['type']);?>"/>
384
								<?php endif; ?>
385
							</td>
386
						</tr>
387
					</table>
388
389
					<table width="100%" border="0" cellpadding="6" cellspacing="0" id="ldap">
390
						<tr>
391
							<td colspan="2" class="list" height="12"></td>
392
						</tr>
393
						<tr>
394
							<td colspan="2" valign="top" class="listtopic">LDAP Server Settings</td>
395
						</tr>
396
						<tr>
397
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Hostname or IP address");?></td>
398
							<td width="78%" class="vtable">
399
								<input name="ldap_host" type="text" class="formfld unknown" id="ldap_host" size="20" value="<?=htmlspecialchars($pconfig['ldap_host']);?>"/>
400
							</td>
401
						</tr>
402
						<tr>
403
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Port value");?></td>
404
							<td width="78%" class="vtable">
405
								<input name="ldap_port" type="text" class="formfld unknown" id="ldap_port" size="5" value="<?=htmlspecialchars($pconfig['ldap_port']);?>"/>
406
							</td>
407
						</tr>
408
						<tr>
409
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Transport");?></td>
410
							<td width="78%" class="vtable">
411
								<select name='ldap_urltype' id='ldap_urltype' class="formselect" onchange='ldap_urlchange()'>
412
								<?php
413
									foreach ($ldap_urltypes as $urltype => $urlport):
414
										$selected = "";
415
										if ($pconfig['ldap_urltype'] == $urltype)
416
											$selected = "selected";
417
								?>
418
									<option value="<?=$urltype;?>" <?=$selected;?>><?=$urltype;?></option>
419
								<?php endforeach; ?>
420
								</select>
421
							</td>
422
						</tr>
423
						<tr>
424
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Protocol version");?></td>
425
							<td width="78%" class="vtable">
426
								<select name='ldap_protver' id='ldap_protver' class="formselect">
427
								<?php
428
									foreach ($ldap_protvers as $version):
429
										$selected = "";
430
										if ($pconfig['ldap_protver'] == $version)
431
											$selected = "selected";
432
								?>
433
									<option value="<?=$version;?>" <?=$selected;?>><?=$version;?></option>
434
								<?php endforeach; ?>
435
								</select>
436
							</td>
437
						</tr>
438
						<tr>
439
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Search scope");?></td>
440
							<td width="78%" class="vtable">
441
								<table border="0" cellspacing="0" cellpadding="2">
442
									<tr>
443
										<td>Level: &nbsp;</td>
444
										<td>
445
											<select name='ldap_scope' id='ldap_scope' class="formselect">
446
											<?php
447
												foreach ($ldap_scopes as $scopename => $scopedesc):
448
													$selected = "";
449
													if ($pconfig['ldap_scope'] == $scopename)
450
														$selected = "selected";
451
											?>
452
												<option value="<?=$scopename;?>" <?=$selected;?>><?=$scopedesc;?></option>
453
											<?php endforeach; ?>
454
											</select>
455
										</td>
456
									</tr>
457
									<tr>
458
										<td>Base DN: &nbsp;</td>
459
										<td>
460
											<input name="ldap_basedn" type="text" class="formfld unknown" id="ldap_basedn" size="40" value="<?=htmlspecialchars($pconfig['ldap_basedn']);?>"/>
461
										</td>
462
									</tr>
463
								</table>
464
465
							</td>
466
						</tr>
467
						<tr>
468
							<td width="22%" valign="top" class="vncell"><?=gettext("Bind credentials");?></td>
469
							<td width="78%" class="vtable">
470
								<table border="0" cellspacing="0" cellpadding="2">
471
									<tr>
472
										<td>
473
											<input name="ldap_anon" type="checkbox" id="ldap_anon" value="yes" <?php if ($pconfig['ldap_anon']) echo "checked"; ?> onClick="ldap_bindchange()">
474
										</td>
475
										<td>
476
											Use anonymous binds to resolve distinguished names
477
										</td>
478
									</tr>
479
								</table>
480
								<table border="0" cellspacing="0" cellpadding="2" id="ldap_bind">
481
									<tr>
482
										<td colspan="2"></td>
483
									</tr>
484
									<tr>
485
										<td>User DN: &nbsp;</td>
486
										<td>
487
											<input name="ldap_binddn" type="text" class="formfld unknown" id="ldap_binddn" size="40" value="<?=htmlspecialchars($pconfig['ldap_binddn']);?>"/><br/>
488
										</td>
489
									</tr>
490
									<tr>
491
										<td>Password: &nbsp;</td>
492
										<td>
493
											<input name="ldap_bindpw" type="password" class="formfld pwd" id="ldap_bindpw" size="20" value="<?=htmlspecialchars($pconfig['ldap_bindpw']);?>"/><br/>
494
										</td>
495
									</tr>
496
								</table>
497
							</td>
498
						</tr>
499
						<?php if (!isset($id)): ?>
500
						<tr>
501
							<td width="22%" valign="top" class="vncell"><?=gettext("Initial Template");?></td>
502
							<td width="78%" class="vtable">
503
								<select name='ldap_tmpltype' id='ldap_tmpltype' class="formselect" onchange='ldap_tmplchange()'>
504
								<?php
505
									foreach ($ldap_templates as $tmplname => $tmpldata):
506
										$selected = "";
507
										if ($pconfig['ldap_template'] == $tmplname)
508
											$selected = "selected";
509
								?>
510
									<option value="<?=$tmplname;?>" <?=$selected;?>><?=$tmpldata['desc'];?></option>
511
								<?php endforeach; ?>
512
								</select>
513
							</td>
514
						</tr>
515
						<?php endif; ?>
516
						<tr>
517
							<td width="22%" valign="top" class="vncell"><?=gettext("User naming attribute");?></td>
518
							<td width="78%" class="vtable">
519
								<input name="ldap_attr_user" type="text" class="formfld unknown" id="ldap_attr_user" size="20" value="<?=htmlspecialchars($pconfig['ldap_attr_user']);?>"/>
520
							</td>
521
						</tr>
522
						<tr>
523
							<td width="22%" valign="top" class="vncell"><?=gettext("Group naming attribute");?></td>
524
							<td width="78%" class="vtable">
525
								<input name="ldap_attr_group" type="text" class="formfld unknown" id="ldap_attr_group" size="20" value="<?=htmlspecialchars($pconfig['ldap_attr_group']);?>"/>
526
							</td>
527
						</tr>
528
						<tr>
529
							<td width="22%" valign="top" class="vncell"><?=gettext("Group member attribute");?></td>
530
							<td width="78%" class="vtable">
531
								<input name="ldap_attr_member" type="text" class="formfld unknown" id="ldap_attr_member" size="20" value="<?=htmlspecialchars($pconfig['ldap_attr_member']);?>"/>
532
							</td>
533
						</tr>
534
					</table>
535
536
					<table width="100%" border="0" cellpadding="6" cellspacing="0" id="radius">
537
						<tr>
538
							<td colspan="2" class="list" height="12"></td>
539
						</tr>
540
						<tr>
541
							<td colspan="2" valign="top" class="listtopic">Radius Server Settings</td>
542
						</tr>
543
						<tr>
544
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Hostname or IP address");?></td>
545
							<td width="78%" class="vtable">
546
								<input name="radius_host" type="text" class="formfld unknown" id="radius_host" size="20" value="<?=htmlspecialchars($pconfig['radius_host']);?>"/>
547
							</td>
548
						</tr>
549
						<tr>
550
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Shared Secret");?></td>
551
							<td width="78%" class="vtable">
552
								<input name="radius_secret" type="password" class="formfld pwd" id="radius_secret" size="20" value="<?=htmlspecialchars($pconfig['radius_secret']);?>"/>
553
							</td>
554
						</tr>
555
						<tr>
556
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Services offered");?></td>
557
							<td width="78%" class="vtable">
558
								<select name='radius_srvcs' id='radius_srvcs' class="formselect" onchange='radius_srvcschange()'>
559
								<?php
560
									foreach ($radius_srvcs as $srvcname => $srvcdesc):
561
										$selected = "";
562
										if ($pconfig['radius_srvcs'] == $srvcname)
563
											$selected = "selected";
564
								?>
565
									<option value="<?=$srvcname;?>" <?=$selected;?>><?=$srvcdesc;?></option>
566
								<?php endforeach; ?>
567
								</select>
568
							</td>
569
						</tr>
570
						<tr id="radius_auth">
571
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Authentication port value");?></td>
572
							<td width="78%" class="vtable">
573
								<input name="radius_auth_port" type="text" class="formfld unknown" id="radius_auth_port" size="5" value="<?=htmlspecialchars($pconfig['radius_auth_port']);?>"/>
574
							</td>
575
						</tr>
576
						<tr id="radius_acct">
577
							<td width="22%" valign="top" class="vncellreq"><?=gettext("Accounting port value");?></td>
578
							<td width="78%" class="vtable">
579
								<input name="radius_acct_port" type="text" class="formfld unknown" id="radius_acct_port" size="5" value="<?=htmlspecialchars($pconfig['radius_acct_port']);?>"/>
580
							</td>
581
						</tr>
582
					</table>
583
584
					<table width="100%" border="0" cellpadding="6" cellspacing="0">
585
						<tr>
586
							<td width="22%" valign="top">&nbsp;</td>
587
							<td width="78%">
588
								<input id="submit" name="save" type="submit" class="formbtn" value="Save" />
589
								<?php if (isset($id) && $a_server[$id]): ?>
590
								<input name="id" type="hidden" value="<?=$id;?>" />
591
								<?php endif;?>
592
							</td>
593
						</tr>
594
					</table>
595
				</form>
596
597
				<?php else: ?>
598
599
				<table width="100%" border="0" cellpadding="0" cellspacing="0">
600 fbf672cb Matthew Grooms
					<tr>
601 e30001cf Matthew Grooms
						<td width="25%" class="listhdrr">Server Name</td>
602
						<td width="25%" class="listhdrr">Type</td>
603
						<td width="35%" class="listhdrr">Host Name</td>
604
						<td width="10%" class="list"></td>
605 fbf672cb Matthew Grooms
					</tr>
606 e30001cf Matthew Grooms
					<?php
607
						$i = 0;
608
						foreach($a_server as $server):
609
							$name = htmlspecialchars($server['name']);
610
							$type = htmlspecialchars($auth_server_types[$server['type']]);
611
							$host = htmlspecialchars($server['host']);
612
					?>
613
					<tr ondblclick="document.location='system_authservers.php?act=edit&id=<?=$i;?>'">
614
						<td class="listlr"><?=$name?>&nbsp;</td>
615
						<td class="listr"><?=$type;?>&nbsp;</td>
616
						<td class="listr"><?=$host;?>&nbsp;</td>
617
						<td valign="middle" nowrap class="list">
618
							<a href="system_authservers.php?act=edit&id=<?=$i;?>">
619
								<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="edit server" alt="edit server" width="17" height="17" border="0" />
620
							</a>
621
							&nbsp;
622
							<a href="system_authservers.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Server?");?>')">
623
								<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="delete server" alt="delete server" width="17" height="17" border="0" />
624
							</a>
625 fbf672cb Matthew Grooms
						</td>
626
					</tr>
627 e30001cf Matthew Grooms
					<?php
628
							$i++;
629
						endforeach;
630
					?>
631 fbf672cb Matthew Grooms
					<tr>
632 e30001cf Matthew Grooms
						<td class="list" colspan="3"></td>
633
						<td class="list">
634
							<a href="system_authservers.php?act=new">
635
								<img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="add server" alt="add server" width="17" height="17" border="0" />
636
							</a>
637 fbf672cb Matthew Grooms
						</td>
638
					</tr>
639
					<tr>
640 e30001cf Matthew Grooms
						<td colspan="3">
641
							<p>
642
								<?=gettext("Additional authentication servers can be added here.");?>
643
							</p>
644 fbf672cb Matthew Grooms
						</td>
645
					</tr>
646
				</table>
647
648 e30001cf Matthew Grooms
				<?php endif; ?>
649 fbf672cb Matthew Grooms
650 e30001cf Matthew Grooms
			</div>
651 fbf672cb Matthew Grooms
		</td>
652
	</tr>
653
</table>
654
<?php include("fend.inc");?>
655
<script type="text/javascript">
656
<!--
657
server_typechange('<?=$pconfig['type'];?>');
658
<?php if (!isset($id) || $pconfig['type'] == "ldap"): ?>
659
ldap_bindchange();
660
ldap_urlchange();
661
ldap_tmplchange();
662
<? endif; ?>
663
<?php if (!isset($id) || $pconfig['type'] == "radius"): ?>
664
radius_srvcschange();
665
<? endif; ?>
666
//-->
667
</script>
668
669
</body>