Subversion Repositories ALCASAR

Rev

Rev 2595 | Rev 2626 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2595 Rev 2618
1
<?php
1
<?php
2
# $Id: user_edit.php 2595 2018-08-19 23:26:36Z tom.houdayer $
2
# $Id: user_edit.php 2618 2018-08-22 21:52:19Z tom.houdayer $
3
 
3
 
4
//gestion de la langue
4
//gestion de la langue
5
if (is_file("../lib/langues.php"))
5
if (is_file("../lib/langues.php"))
6
	include("../lib/langues.php");
6
	include("../lib/langues.php");
7
 
7
 
8
// Update Alcasar-Status-Page-Must-Stay-Open
8
// Update Alcasar-Status-Page-Must-Stay-Open
9
if ((isset($_POST['Alcasar-Status-Page-Must-Stay-Open0'])) && ($_POST['Alcasar-Status-Page-Must-Stay-Open0'] === '2')) {
9
if ((isset($_POST['Alcasar-Status-Page-Must-Stay-Open0'])) && ($_POST['Alcasar-Status-Page-Must-Stay-Open0'] === '2')) {
10
	$_POST['Idle-Timeout0'] = '600'; // 10 minutes
10
	$_POST['Idle-Timeout0'] = '600'; // 10 minutes
11
} else {
11
} else {
12
	$_POST['Idle-Timeout0'] = '';
12
	$_POST['Idle-Timeout0'] = '';
13
}
13
}
14
$_POST['Idle-Timeout0_op'] = '=';
14
$_POST['Idle-Timeout0_op'] = '=';
15
 
15
 
16
require('/etc/freeradius-web/config.php');
16
require('/etc/freeradius-web/config.php');
17
require('../lib/attrshow.php');
17
require('../lib/attrshow.php');
18
require('../lib/defaults.php');
18
require('../lib/defaults.php');
19
require("../lib/operators.php");
19
require("../lib/operators.php");
20
 
20
 
21
if(!isset($change)) $change = 0;
21
if(!isset($change)) $change = 0;
22
if(!isset($user_type)) $user_type = 'user';
22
if(!isset($user_type)) $user_type = 'user';
23
if(!isset($badusers)) $badusers = 0;
23
if(!isset($badusers)) $badusers = 0;
24
if(!isset($cn)) $cn = '';
24
if(!isset($cn)) $cn = '';
25
 
25
 
26
if ($user_type != 'group'){
26
if ($user_type != 'group'){
27
	if (is_file("../lib/$config[general_lib_type]/user_info.php"))
27
	if (is_file("../lib/$config[general_lib_type]/user_info.php"))
28
		include("../lib/$config[general_lib_type]/user_info.php");
28
		include("../lib/$config[general_lib_type]/user_info.php");
29
	if ($config['general_lib_type'] == 'sql' && $config['sql_show_all_groups'] == 'true'){
29
	if ($config['general_lib_type'] == 'sql' && $config['sql_show_all_groups'] == 'true'){
30
		$saved_login = $login;
30
		$saved_login = $login;
31
		$login = '';
31
		$login = '';
32
		if (is_file("../lib/$config[general_lib_type]/group_info.php"))
32
		if (is_file("../lib/$config[general_lib_type]/group_info.php"))
33
			include("../lib/$config[general_lib_type]/group_info.php");
33
			include("../lib/$config[general_lib_type]/group_info.php");
34
		$login = $saved_login;
34
		$login = $saved_login;
35
	}
35
	}
36
}
36
}
37
else{
37
else{
38
	if (is_file("../lib/$config[general_lib_type]/group_info.php"))
38
	if (is_file("../lib/$config[general_lib_type]/group_info.php"))
39
		include("../lib/$config[general_lib_type]/group_info.php");
39
		include("../lib/$config[general_lib_type]/group_info.php");
40
}
40
}
41
if (false && /* Hide operator column */ $config['general_lib_type'] == 'sql' && $config['sql_use_operators'] == 'true') {
41
if (false && /* Hide operator column */ $config['general_lib_type'] == 'sql' && $config['sql_use_operators'] == 'true') {
42
	$colspan = 2;
42
	$colspan = 2;
43
	$show_ops = 1;
43
	$show_ops = 1;
44
} else {
44
} else {
45
	$show_ops = 0;
45
	$show_ops = 0;
46
	$colspan = 1;
46
	$colspan = 1;
47
}
47
}
48
?>
48
?>
49
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
49
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
50
<html>
50
<html>
51
<head>
51
<head>
52
<title>Users &amp; groups edition</title>
52
<title>Users &amp; groups edition</title>
53
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $config['general_charset']?>">
53
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $config['general_charset']?>">
54
<link rel="stylesheet" href="/css/jquery-ui.min.css">
54
<link rel="stylesheet" href="/css/jquery-ui.min.css">
55
<link rel="stylesheet" href="/css/style.css">
55
<link rel="stylesheet" href="/css/style.css">
56
<link rel="stylesheet" type="text/css" href="/css/epoch_styles.css">
56
<link rel="stylesheet" type="text/css" href="/css/epoch_styles.css">
57
<script type="text/javascript" src="/js/fonctions.js"></script>
57
<script type="text/javascript" src="/js/fonctions.js"></script>
58
<script language="javascript" type="text/javascript">
58
<script language="javascript" type="text/javascript">
59
var chars='0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ'
59
var chars='0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ'
60
function password(size)
60
function password(size)
61
  {
61
  {
62
  var pass=''
62
  var pass=''
63
  while(pass.length < size)
63
  while(pass.length < size)
64
  {
64
  {
65
    pass+=chars.charAt(Math.round(Math.random() * (chars.length)))
65
    pass+=chars.charAt(Math.round(Math.random() * (chars.length)))
66
  }
66
  }
67
  document.edituser.passwd.value=pass
67
  document.edituser.passwd.value=pass
68
  document.edituser.pwdgene.value=pass
68
  document.edituser.pwdgene.value=pass
69
}
69
}
70
</script>
70
</script>
71
<script type="text/javascript" src="/js/epoch_classes.js"></script>
71
<script type="text/javascript" src="/js/epoch_classes.js"></script>
72
<script language="javascript" type="text/javascript">
72
<script language="javascript" type="text/javascript">
73
	// Insertion du calendrier
73
	// Insertion du calendrier
74
	var dp_cal;
74
	var dp_cal;
75
	window.onload = function () {
75
	window.onload = function () {
76
		dp_cal = new Epoch('epoch_popup', 'popup', document.getElementById('popup_container'));
76
		dp_cal = new Epoch('epoch_popup', 'popup', document.getElementById('popup_container'));
77
	};
77
	};
78
</script>
78
</script>
79
<script type="text/javascript">
79
<script type="text/javascript">
80
	function showAdvancedFields(show) {
80
	function showAdvancedFields(show) {
81
		var form = document.forms['edituser'];
81
		var form = document.forms['edituser'];
82
		var btn_show = document.getElementById('show-advanced-fields');
82
		var btn_show = document.getElementById('show-advanced-fields');
83
		var btn_hide = document.getElementById('hide-advanced-fields');
83
		var btn_hide = document.getElementById('hide-advanced-fields');
84
 
84
 
85
		if (show) {
85
		if (show) {
86
			btn_hide.style.display = null;
86
			btn_hide.style.display = null;
87
			btn_show.style.display = 'none';
87
			btn_show.style.display = 'none';
88
			form.className += ' hide-advanced-fields';
88
			form.className += ' hide-advanced-fields';
89
		} else {
89
		} else {
90
			btn_show.style.display = null;
90
			btn_show.style.display = null;
91
			btn_hide.style.display = 'none';
91
			btn_hide.style.display = 'none';
92
			form.className = form.className.replace(' hide-advanced-fields', '');
92
			form.className = form.className.replace(' hide-advanced-fields', '');
93
 
93
 
94
		}
94
		}
95
	}
95
	}
96
</script>
96
</script>
97
<style type="text/css">
97
<style type="text/css">
98
	.hide-advanced-fields .advanced-field {
98
	.hide-advanced-fields .advanced-field {
99
		display: none;
99
		display: none;
100
	}
100
	}
101
</style>
101
</style>
102
</head>
102
</head>
103
<body>
103
<body>
104
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
104
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
105
	<tr><th><?= (($user_type !== 'group') ? $l_users_managment : $l_groups_managment) ?></th></tr>
105
	<tr><th><?= (($user_type !== 'group') ? $l_users_managment : $l_groups_managment) ?></th></tr>
106
	<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1"
106
	<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1"
107
height="2"></td></tr>
107
height="2"></td></tr>
108
</TABLE>
108
</TABLE>
109
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1>
109
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1>
110
	<tr><td valign="middle" align="left">
110
	<tr><td valign="middle" align="left">
111
	<center>
111
	<center>
112
	<table border=0 width=640 cellpadding=0 cellspacing=2>
112
	<table border=0 width=640 cellpadding=0 cellspacing=2>
113
<?php
113
<?php
114
if ($user_type != 'group'){
114
if ($user_type != 'group'){
115
	include("../html/user_toolbar.html.php");
115
	include("../html/user_toolbar.html.php");
116
	$titre=$l_user;
116
	$titre=$l_user;
117
}else{
117
}else{
118
	include("../html/group_toolbar.html.php");
118
	include("../html/group_toolbar.html.php");
119
	$titre=$l_group;
119
	$titre=$l_group;
120
}
120
}
121
print <<<EOM
121
print <<<EOM
122
</table>
122
</table>
123
<br>
123
<br>
124
<table border=0 width=620 cellpadding=1 cellspacing=1>
124
<table border=0 width=620 cellpadding=1 cellspacing=1>
125
<tr valign=top>
125
<tr valign=top>
126
<td width=400></td>
126
<td width=400></td>
127
<td bgcolor="black">
127
<td bgcolor="black">
128
	<table border=0 width=100% cellpadding=2 cellspacing=0>
128
	<table border=0 width=100% cellpadding=2 cellspacing=0>
129
	<tr bgcolor="#907030" align=center valign=top><th>
129
	<tr bgcolor="#907030" align=center valign=top><th>
130
	<font color="white">$titre : $login ($cn)</font>
130
	<font color="white">$titre : $login ($cn)</font>
131
	</th></tr>
131
	</th></tr>
132
	</table>
132
	</table>
133
</td></tr>
133
</td></tr>
134
<tr bgcolor="black" valign=top><td colspan="2">
134
<tr bgcolor="black" valign=top><td colspan="2">
135
	<table border=0 width=100% cellpadding=12 cellspacing=0 bgcolor="#ffffd0" valign=top>
135
	<table border=0 width=100% cellpadding=12 cellspacing=0 bgcolor="#ffffd0" valign=top>
136
	<tr><td>
136
	<tr><td>
137
EOM;
137
EOM;
138
 
138
 
139
if ($change == 1) {
139
if ($change == 1) {
140
	if (is_file("../lib/$config[general_lib_type]/change_attrs.php"))
140
	if (is_file("../lib/$config[general_lib_type]/change_attrs.php"))
141
		include("../lib/$config[general_lib_type]/change_attrs.php");
141
		include("../lib/$config[general_lib_type]/change_attrs.php");
142
	if ($user_type != 'group'){
142
	if ($user_type != 'group'){
143
		if ($config['general_show_user_password'] != 'no' && $passwd != ''
143
		if ($config['general_show_user_password'] != 'no' && $passwd != ''
144
			&& is_file("../lib/$config[general_lib_type]/change_passwd.php"))
144
			&& is_file("../lib/$config[general_lib_type]/change_passwd.php"))
145
			include("../lib/$config[general_lib_type]/change_passwd.php");
145
			include("../lib/$config[general_lib_type]/change_passwd.php");
146
		if (is_file("../lib/$config[general_lib_type]/user_info.php"))
146
		if (is_file("../lib/$config[general_lib_type]/user_info.php"))
147
			include("../lib/$config[general_lib_type]/user_info.php");
147
			include("../lib/$config[general_lib_type]/user_info.php");
148
		if ($group_change && $config['general_lib_type'] == 'sql' && $config['sql_show_all_groups'] == 'true'){
148
		if ($group_change && $config['general_lib_type'] == 'sql' && $config['sql_show_all_groups'] == 'true'){
149
			include("../lib/$config[general_lib_type]/group_change.php");
149
			include("../lib/$config[general_lib_type]/group_change.php");
150
			include("../lib/defaults.php");
150
			include("../lib/defaults.php");
151
		}
151
		}
152
		// Disconnecting user for re-authentication
152
		// Disconnecting user for re-authentication
153
		$mac = exec('sudo /usr/sbin/chilli_query list | awk '.escapeshellarg('($5 == 1) && ($6 == "'.$login.'") {print $1}'));
153
		$mac = exec('sudo /usr/sbin/chilli_query list | awk '.escapeshellarg('($5 == 1) && ($6 == "'.$login.'") {print $1}'));
154
		if (!empty($mac)) {
154
		if (!empty($mac)) {
155
			exec('sudo /usr/sbin/chilli_query logout mac '.escapeshellarg($mac));
155
			exec('sudo /usr/sbin/chilli_query logout mac '.escapeshellarg($mac));
156
			if ($login === $mac) {	// Reconnect allowed MAC
156
			if ($login === $mac) {	// Reconnect allowed MAC
157
				exec('sudo /usr/sbin/chilli_query login mac '.escapeshellarg($mac).' username '.escapeshellarg($mac)." password 'password'");
157
				exec('sudo /usr/sbin/chilli_query login mac '.escapeshellarg($mac).' username '.escapeshellarg($mac)." password 'password'");
158
			}
158
			}
159
		}
159
		}
160
	}
160
	}
161
	else{
161
	else{
162
		if (is_file("../lib/$config[general_lib_type]/group_info.php"))
162
		if (is_file("../lib/$config[general_lib_type]/group_info.php"))
163
			include("../lib/$config[general_lib_type]/group_info.php");
163
			include("../lib/$config[general_lib_type]/group_info.php");
164
		// Disconnecting all users from the selected group for re-authentication
164
		// Disconnecting all users from the selected group for re-authentication
165
		if (isset($group_members)) {
165
		if (isset($group_members)) {
166
			foreach ($group_members as $g_member => $member) {
166
			foreach ($group_members as $g_member => $member) {
167
				$mac = exec('sudo /usr/sbin/chilli_query list | awk '.escapeshellarg('($5 == 1) && ($6 == "'.$member.'") {print $1}'));
167
				$mac = exec('sudo /usr/sbin/chilli_query list | awk '.escapeshellarg('($5 == 1) && ($6 == "'.$member.'") {print $1}'));
168
				if (!empty($mac)) {
168
				if (!empty($mac)) {
169
					exec('sudo /usr/sbin/chilli_query logout mac '.escapeshellarg($mac));
169
					exec('sudo /usr/sbin/chilli_query logout mac '.escapeshellarg($mac));
170
					if ($member === $mac) {	// Reconnect allowed MAC
170
					if ($member === $mac) {	// Reconnect allowed MAC
171
						exec('sudo /usr/sbin/chilli_query login mac '.escapeshellarg($mac).' username '.escapeshellarg($mac)." password 'password'");
171
						exec('sudo /usr/sbin/chilli_query login mac '.escapeshellarg($mac).' username '.escapeshellarg($mac)." password 'password'");
172
					}
172
					}
173
				}
173
				}
174
			}
174
			}
175
		}
175
		}
176
	}
176
	}
177
}
177
}
178
else if ($badusers == 1){
178
else if ($badusers == 1){
179
	if (is_file("../lib/add_badusers.php"))
179
	if (is_file("../lib/add_badusers.php"))
180
		include("../lib/add_badusers.php");
180
		include("../lib/add_badusers.php");
181
}
181
}
182
 
182
 
183
//si l'utilisateur fait parti d'un groupe, on charge les attributs du groupe, pour les afficher ensuite.
183
//si l'utilisateur fait parti d'un groupe, on charge les attributs du groupe, pour les afficher ensuite.
184
if(isset($member_groups) && ($user_type != 'group')) {
184
if(isset($member_groups) && ($user_type != 'group')) {
185
	$group = array_values($member_groups)[0];
185
	$group = array_values($member_groups)[0];
186
	$login_saved = $login;
186
	$login_saved = $login;
187
	$login = array_values($member_groups)[0];
187
	$login = array_values($member_groups)[0];
188
	include("../lib/$config[general_lib_type]/group_info.php");
188
	include("../lib/$config[general_lib_type]/group_info.php");
189
	$login = $login_saved;
189
	$login = $login_saved;
190
 
190
 
191
	foreach ($show_attrs as $key => $desc) {
191
	foreach ($show_attrs as $key => $desc) {
192
		if ($key === 'Idle-Timeout') continue;
192
		if ($key === 'Idle-Timeout') continue;
193
		$name = $attrmap["$key"];
193
		$name = $attrmap["$key"];
194
		$generic = (isset($attrmap['generic']["$key"])) ? $attrmap['generic']["$key"] : '';
194
		$generic = (isset($attrmap['generic']["$key"])) ? $attrmap['generic']["$key"] : '';
195
		if ($name == 'none')
195
		if ($name == 'none')
196
			continue;
196
			continue;
197
		unset($vals);
197
		unset($vals);
198
		unset($selected);
198
		unset($selected);
199
		unset($ops);
199
		unset($ops);
200
		$def_added = 0;
200
		$def_added = 0;
201
		if (isset($item_vals["$key"]['count']) && $item_vals["$key"]['count']) {
201
		if (isset($item_vals["$key"]['count']) && $item_vals["$key"]['count']) {
202
			for($i=0;$i<$item_vals["$key"]['count'];$i++){
202
			for($i=0;$i<$item_vals["$key"]['count'];$i++){
203
				$vals[] = $item_vals["$key"][$i];
203
				$vals[] = $item_vals["$key"][$i];
204
				$ops[] = $item_vals["$key"]['operator'][$i];
204
				$ops[] = $item_vals["$key"]['operator'][$i];
205
			}
205
			}
206
		} else {
206
		} else {
207
			if (isset($default_vals["$key"]['count']) && $default_vals["$key"]['count']) {
207
			if (isset($default_vals["$key"]['count']) && $default_vals["$key"]['count']) {
208
				for ($i=0;$i<$default_vals["$key"]['count'];$i++) {
208
				for ($i=0;$i<$default_vals["$key"]['count'];$i++) {
209
					$vals[] = $default_vals["$key"][$i];
209
					$vals[] = $default_vals["$key"][$i];
210
					$ops[] = $default_vals["$key"]['operator'][$i];
210
					$ops[] = $default_vals["$key"]['operator'][$i];
211
				}
211
				}
212
			} else {
212
			} else {
213
				$vals[] = '';
213
				$vals[] = '';
214
				$ops[] = '=';
214
				$ops[] = '=';
215
			}
215
			}
216
			$def_added = 1;
216
			$def_added = 1;
217
		}
217
		}
218
		if ($generic == 'generic' && $def_added == 0) {
218
		if ($generic == 'generic' && $def_added == 0) {
219
			for($i=0;$i<$default_vals["$key"]['count'];$i++){
219
			for($i=0;$i<$default_vals["$key"]['count'];$i++){
220
				$vals[] = $default_vals["$key"][$i];
220
				$vals[] = $default_vals["$key"][$i];
221
				$ops[] = $default_vals["$key"]['operator'][$i];
221
				$ops[] = $default_vals["$key"]['operator'][$i];
222
			}
222
			}
223
		}
223
		}
224
		if (isset($add) && $add && $name == $add_attr){
224
		if (isset($add) && $add && $name == $add_attr){
225
			$vals[] = $default_vals["$key"][0];
225
			$vals[] = $default_vals["$key"][0];
226
			$ops[] = ($default_vals["$key"]['operator'][0] != '') ? $default_vals["$key"]['operator'][0] : '=';
226
			$ops[] = ($default_vals["$key"]['operator'][0] != '') ? $default_vals["$key"]['operator'][0] : '=';
227
		}
227
		}
228
 
228
 
229
		$i = 0;
229
		$i = 0;
230
		foreach ($vals as $val) {
230
		foreach ($vals as $val) {
231
			$name1 = $name . $i;
231
			$name1 = $name . $i;
232
			$val = preg_replace('/\"/','&quot;',$val);
232
			$val = preg_replace('/\"/','&quot;',$val);
233
			$oper_name = $name1 . '_op';
233
			$oper_name = $name1 . '_op';
234
			$oper = $ops[$i];
234
			$oper = $ops[$i];
235
			$selected[$oper] = 'selected';
235
			$selected[$oper] = 'selected';
236
			$i++;
236
			$i++;
237
 
237
 
238
			switch ($key)
238
			switch ($key)
239
				{
239
				{
240
				case 'Simultaneous-Use' :
240
				case 'Simultaneous-Use' :
241
					$grp_simuse = $val;
241
					$grp_simuse = $val;
242
					break;
242
					break;
243
				case 'Login-Time' :
243
				case 'Login-Time' :
244
					$grp_logtime = $val;
244
					$grp_logtime = $val;
245
					break;
245
					break;
246
				case 'Expiration' :
246
				case 'Expiration' :
247
					$grp_exp = $val;
247
					$grp_exp = $val;
248
					break;
248
					break;
249
				case 'Max-All-Session' :
249
				case 'Max-All-Session' :
250
					$grp_maxall = $val;
250
					$grp_maxall = $val;
251
					break;
251
					break;
252
				case 'Session-Timeout' :
252
				case 'Session-Timeout' :
253
					$grp_sesstim = $val;
253
					$grp_sesstim = $val;
254
					break;
254
					break;
255
				case 'Max-Daily-Session' :
255
				case 'Max-Daily-Session' :
256
					$grp_maxday = $val;
256
					$grp_maxday = $val;
257
					break;
257
					break;
258
				case 'Max-Weekly-Session' :
258
				case 'Max-Weekly-Session' :
259
					$grp_maxweek = $val;
259
					$grp_maxweek = $val;
260
					break;
260
					break;
261
				case 'Max-Monthly-Session' :
261
				case 'Max-Monthly-Session' :
262
					$grp_maxmonth = $val;
262
					$grp_maxmonth = $val;
263
					break;
263
					break;
264
				case 'CoovaChilli-Max-Input-Octets' :
264
				case 'CoovaChilli-Max-Input-Octets' :
265
					$grp_maxio = $val;
265
					$grp_maxio = $val;
266
					break;
266
					break;
267
				case 'CoovaChilli-Max-Output-Octets' :
267
				case 'CoovaChilli-Max-Output-Octets' :
268
					$grp_maxoo = $val;
268
					$grp_maxoo = $val;
269
					break;
269
					break;
270
				case 'CoovaChilli-Max-Total-Octets' :
270
				case 'CoovaChilli-Max-Total-Octets' :
271
					$grp_maxto = $val;
271
					$grp_maxto = $val;
272
					break;
272
					break;
273
				case 'CoovaChilli-Max-Total-Octets-Daily' :
273
				case 'CoovaChilli-Max-Total-Octets-Daily' :
274
					$grp_maxtoDaily = $val;
274
					$grp_maxtoDaily = $val;
275
					break;
275
					break;
276
				case 'CoovaChilli-Max-Total-Octets-Monthly' :
276
				case 'CoovaChilli-Max-Total-Octets-Monthly' :
277
					$grp_maxtoMonthly = $val;
277
					$grp_maxtoMonthly = $val;
278
					break;
278
					break;
279
				case 'CoovaChilli-Bandwidth-Max-Up' :
279
				case 'CoovaChilli-Bandwidth-Max-Up' :
280
					$grp_bwup = $val;
280
					$grp_bwup = $val;
281
					break;
281
					break;
282
				case 'CoovaChilli-Bandwidth-Max-Down' :
282
				case 'CoovaChilli-Bandwidth-Max-Down' :
283
					$grp_bwdown = $val;
283
					$grp_bwdown = $val;
284
					break;
284
					break;
285
				case 'WISPr-Redirection-URL' :
285
				case 'WISPr-Redirection-URL' :
286
					$grp_redir = $val;
286
					$grp_redir = $val;
287
					break;
287
					break;
288
				case 'Alcasar-Filter' :
288
				case 'Alcasar-Filter' :
289
					if ($val === '4') {
289
					if ($val === '4') {
290
						$grp_filter = $l_filtering_havp_wl;
290
						$grp_filter = $l_filtering_havp_wl;
291
					} else if ($val === '3') {
291
					} else if ($val === '3') {
292
						$grp_filter = $l_filtering_havp_bl;
292
						$grp_filter = $l_filtering_havp_bl;
293
					} else if ($val === '2') {
293
					} else if ($val === '2') {
294
						$grp_filter = $l_filtering_havp;
294
						$grp_filter = $l_filtering_havp;
295
					} else if ($val === '1') {
295
					} else if ($val === '1') {
296
						$grp_filter = $l_filtering_none;
296
						$grp_filter = $l_filtering_none;
297
					} else {
297
					} else {
298
						$grp_filter = '';
298
						$grp_filter = '';
299
					}
299
					}
300
					break;
300
					break;
301
				case 'Alcasar-Protocols-Filter' :
301
				case 'Alcasar-Protocols-Filter' :
302
					if ($val === '4') {
302
					if ($val === '4') {
303
						$grp_filterProto = $l_proto_3;
303
						$grp_filterProto = $l_proto_3;
304
					} else if ($val === '3') {
304
					} else if ($val === '3') {
305
						$grp_filterProto = $l_proto_2;
305
						$grp_filterProto = $l_proto_2;
306
					} else if ($val === '2') {
306
					} else if ($val === '2') {
307
						$grp_filterProto = $l_proto_1;
307
						$grp_filterProto = $l_proto_1;
308
					} else if ($val === '1') {
308
					} else if ($val === '1') {
309
						$grp_filterProto = $l_proto_0;
309
						$grp_filterProto = $l_proto_0;
310
					} else {
310
					} else {
311
						$grp_filterProto = '';
311
						$grp_filterProto = '';
312
					}
312
					}
313
					break;
313
					break;
314
				case 'Alcasar-Status-Page-Must-Stay-Open' :
314
				case 'Alcasar-Status-Page-Must-Stay-Open' :
315
					if ($val === '2') {
315
					if ($val === '2') {
316
						$grp_statusOpenRequired = $l_no;
316
						$grp_statusOpenRequired = $l_no;
317
					} else if ($val === '1') {
317
					} else if ($val === '1') {
318
						$grp_statusOpenRequired = $l_yes;
318
						$grp_statusOpenRequired = $l_yes;
319
					} else {
319
					} else {
320
						$grp_statusOpenRequired = '';
320
						$grp_statusOpenRequired = '';
321
					}
321
					}
322
					break;
322
					break;
323
				case 'Alcasar-Expire-After' :
323
				case 'Alcasar-Expire-After' :
324
					$grp_expireAfter = $val;
324
					$grp_expireAfter = $val;
325
					break;
325
					break;
326
			}
326
			}
327
		}
327
		}
328
	}
328
	}
329
 
329
 
330
	/*on charge les attributs utilisateurs afin de montrer les groupes disponibles*/
330
	/*on charge les attributs utilisateurs afin de montrer les groupes disponibles*/
331
	if ($user_type != 'group') {
331
	if ($user_type != 'group') {
332
		if (is_file("../lib/$config[general_lib_type]/user_info.php"))
332
		if (is_file("../lib/$config[general_lib_type]/user_info.php"))
333
			include("../lib/$config[general_lib_type]/user_info.php");
333
			include("../lib/$config[general_lib_type]/user_info.php");
334
		if ($config['general_lib_type'] == 'sql' && $config['sql_show_all_groups'] == 'true'){
334
		if ($config['general_lib_type'] == 'sql' && $config['sql_show_all_groups'] == 'true'){
335
			$saved_login = $login;
335
			$saved_login = $login;
336
			$login = '';
336
			$login = '';
337
			if (is_file("../lib/$config[general_lib_type]/group_info.php"))
337
			if (is_file("../lib/$config[general_lib_type]/group_info.php"))
338
				include("../lib/$config[general_lib_type]/group_info.php");
338
				include("../lib/$config[general_lib_type]/group_info.php");
339
			$login = $saved_login;
339
			$login = $saved_login;
340
		}
340
		}
341
	}
341
	}
342
}
342
}
343
?>
343
?>
344
   <form name="edituser" method="post" class="">
344
   <form name="edituser" method="post" class="">
345
      <input type="hidden" name="login" value="<?= $login ?>">
345
      <input type="hidden" name="login" value="<?= $login ?>">
346
      <input type="hidden" name="user_type" value="<?= $user_type ?>">
346
      <input type="hidden" name="user_type" value="<?= $user_type ?>">
347
      <input type="hidden" name="change" value="0">
347
      <input type="hidden" name="change" value="0">
348
      <input type="hidden" name="add" value="0">
348
      <input type="hidden" name="add" value="0">
349
      <input type="hidden" name="badusers" value="0">
349
      <input type="hidden" name="badusers" value="0">
350
      <input type="hidden" name="group_change" value="0">
350
      <input type="hidden" name="group_change" value="0">
351
	<table border="1" bordercolordark="#ffffe0" bordercolorlight="#000000" width="100%" cellpadding="2" cellspacing="0" bgcolor="#ffffe0" valign="top">
351
	<table border="1" bordercolordark="#ffffe0" bordercolorlight="#000000" width="100%" cellpadding="2" cellspacing="0" bgcolor="#ffffe0" valign="top">
352
<?php
352
<?php
353
if (($user_type !== 'group') && (isset($member_groups))) {
353
if (($user_type !== 'group') && (isset($member_groups))) {
354
	echo <<<EOM
354
	echo <<<EOM
355
	<tr>
355
	<tr>
356
		<td colspan="$colspan"></td>
356
		<td colspan="$colspan"></td>
357
		<td>$l_group_desc</td>
357
		<td>$l_group_desc</td>
358
		<td>$l_user_desc</td>
358
		<td>$l_user_desc</td>
359
	</tr>
359
	</tr>
360
EOM;
360
EOM;
361
}
361
}
362
if ($user_type != 'group' && $config['general_show_user_password'] != 'no') {
362
if ($user_type != 'group' && $config['general_show_user_password'] != 'no') {
363
 
363
 
364
 
364
 
365
	echo <<<EOM
365
	echo <<<EOM
366
	<tr>
366
	<tr>
367
	<td align=right colspan="$colspan" bgcolor="#d0ddb0">
367
	<td align=right colspan="$colspan" bgcolor="#d0ddb0">
368
	$l_new_password<br>
368
	$l_new_password<br>
369
	</td>
369
	</td>
370
EOM;
370
EOM;
371
 
371
 
372
	if(isset($member_groups)){
372
	if(isset($member_groups)){
373
		echo <<<EOM
373
		echo <<<EOM
374
		<td bgcolor="#BEBEBE">
374
		<td bgcolor="#BEBEBE">
375
		<br/>
375
		<br/>
376
		</td>
376
		</td>
377
EOM;
377
EOM;
378
	}
378
	}
379
 
379
 
380
 
380
 
381
	echo <<<EOM
381
	echo <<<EOM
382
	<td>
382
	<td>
383
	<input type="password" name="passwd" value="" size="20">
383
	<input type="password" name="passwd" value="" size="20">
384
	<br /><input type="button" value="$l_passwd_gen" onclick="password(8)">
384
	<br /><input type="button" value="$l_passwd_gen" onclick="password(8)">
385
	<input type="text" value="" name="pwdgene" size="10" readonly>
385
	<input type="text" value="" name="pwdgene" size="10" readonly>
386
	</td>
386
	</td>
387
	</tr>
387
	</tr>
388
EOM;
388
EOM;
389
}
389
}
390
 
390
 
391
	foreach($show_attrs as $key => $desc){
391
	foreach($show_attrs as $key => $desc){
392
		if ($key === 'Idle-Timeout') continue;
392
		if ($key === 'Idle-Timeout') continue;
393
		$name = $attrmap["$key"];
393
		$name = $attrmap["$key"];
394
		$generic = (isset($attrmap['generic']["$key"])) ? $attrmap['generic']["$key"] : '';
394
		$generic = (isset($attrmap['generic']["$key"])) ? $attrmap['generic']["$key"] : '';
395
		if ($name == 'none')
395
		if ($name == 'none')
396
			continue;
396
			continue;
397
		unset($vals);
397
		unset($vals);
398
		unset($selected);
398
		unset($selected);
399
		unset($ops);
399
		unset($ops);
400
		$def_added = 0;
400
		$def_added = 0;
401
		if (isset($item_vals["$key"]['count']) && $item_vals["$key"]['count']){
401
		if (isset($item_vals["$key"]['count']) && $item_vals["$key"]['count']){
402
			for($i=0;$i<$item_vals["$key"]['count'];$i++){
402
			for($i=0;$i<$item_vals["$key"]['count'];$i++){
403
				$vals[] = $item_vals["$key"][$i];
403
				$vals[] = $item_vals["$key"][$i];
404
				$ops[] = $item_vals["$key"]['operator'][$i];
404
				$ops[] = $item_vals["$key"]['operator'][$i];
405
			}
405
			}
406
		} else {
406
		} else {
407
			if (isset($default_vals["$key"]['count']) && $default_vals["$key"]['count']){
407
			if (isset($default_vals["$key"]['count']) && $default_vals["$key"]['count']){
408
				for($i=0;$i<$default_vals["$key"]['count'];$i++){
408
				for($i=0;$i<$default_vals["$key"]['count'];$i++){
409
					$vals[] = $default_vals["$key"][$i];
409
					$vals[] = $default_vals["$key"][$i];
410
					$ops[] = $default_vals["$key"]['operator'][$i];
410
					$ops[] = $default_vals["$key"]['operator'][$i];
411
				}
411
				}
412
			}
412
			}
413
			else{
413
			else{
414
				$vals[] = '';
414
				$vals[] = '';
415
				$ops[] = '=';
415
				$ops[] = '=';
416
			}
416
			}
417
			$def_added = 1;
417
			$def_added = 1;
418
		}
418
		}
419
		if ($generic == 'generic' && $def_added == 0){
419
		if ($generic == 'generic' && $def_added == 0){
420
			for($i=0;$i<$default_vals["$key"]['count'];$i++){
420
			for($i=0;$i<$default_vals["$key"]['count'];$i++){
421
				$vals[] = $default_vals["$key"][$i];
421
				$vals[] = $default_vals["$key"][$i];
422
				$ops[] = $default_vals["$key"]['operator'][$i];
422
				$ops[] = $default_vals["$key"]['operator'][$i];
423
			}
423
			}
424
		}
424
		}
425
		if (isset($add) && $add && $name == $add_attr){
425
		if (isset($add) && $add && $name == $add_attr){
426
			$vals[] = $default_vals["$key"][0];
426
			$vals[] = $default_vals["$key"][0];
427
			$ops[] = ($default_vals["$key"]['operator'][0] != '') ? $default_vals["$key"]['operator'][0] : '=';
427
			$ops[] = ($default_vals["$key"]['operator'][0] != '') ? $default_vals["$key"]['operator'][0] : '=';
428
		}
428
		}
429
 
429
 
430
		$i = 0;
430
		$i = 0;
431
		foreach($vals as $val) {
431
		foreach($vals as $val) {
432
			$name1 = $name . $i;
432
			$name1 = $name . $i;
433
			$val = preg_replace('/\"/','&quot;',$val);
433
			$val = preg_replace('/\"/','&quot;',$val);
434
			$oper_name = $name1 . '_op';
434
			$oper_name = $name1 . '_op';
435
			$oper = $ops[$i];
435
			$oper = $ops[$i];
436
			$selected[$oper] = 'selected';
436
			$selected[$oper] = 'selected';
437
			$i++;
437
			$i++;
438
			switch ($key)
438
			switch ($key)
439
			{
439
			{
440
					// $advanced = 1 : champs de saisie amélioré (calendrier, convertisseur, etc.)
440
					// $advanced = 1 : champs de saisie amélioré (calendrier, convertisseur, etc.)
441
				case 'Simultaneous-Use' :
441
				case 'Simultaneous-Use' :
442
					$advanced = false;
442
					$advanced = false;
443
					$help_link = "help/simultaneous_use_help.html";
443
					$help_link = "help/simultaneous_use_help.html";
444
					$desc = $l_simultaneous_use;
444
					$desc = $l_simultaneous_use;
445
					break;
445
					break;
446
				case 'Max-All-Session' :
446
				case 'Max-All-Session' :
447
					$advanced = false;
447
					$advanced = true;
448
					$help_link = "help/max_all_session_help.html";
448
					$help_link = "help/max_all_session_help.html";
449
					$desc = $l_max_all_session;
449
					$desc = $l_max_all_session;
450
					break;
450
					break;
451
				case 'Session-Timeout' :
451
				case 'Session-Timeout' :
452
					$advanced = true;
452
					$advanced = true;
453
					$help_link = "help/session_timeout_help.html";
453
					$help_link = "help/session_timeout_help.html";
454
					$desc = $l_session_timeout;
454
					$desc = $l_session_timeout;
455
					break;
455
					break;
456
				case 'Max-Daily-Session' :
456
				case 'Max-Daily-Session' :
457
					$advanced = true;
457
					$advanced = true;
458
					$help_link = "help/session_timeout_help.html";
458
					$help_link = "help/session_timeout_help.html";
459
					$desc = $l_daily_timeout;
459
					$desc = $l_daily_timeout;
460
					break;
460
					break;
461
				case 'Max-Monthly-Session' :
461
				case 'Max-Monthly-Session' :
462
					$advanced = true;
462
					$advanced = true;
463
					$help_link = "help/session_timeout_help.html";
463
					$help_link = "help/session_timeout_help.html";
464
					$desc = $l_monthly_timeout;
464
					$desc = $l_monthly_timeout;
465
					break;
465
					break;
466
				case 'Login-Time' :
466
				case 'Login-Time' :
467
					$advanced = true;
467
					$advanced = true;
468
					$help_link = "help/login_time_help.html";
468
					$help_link = "help/login_time_help.html";
469
					$desc = $l_login_time;
469
					$desc = $l_login_time;
470
					break;
470
					break;
471
				case 'Expiration' :
471
				case 'Expiration' :
472
					$advanced = false;
472
					$advanced = false;
473
					$help_link = "help/expiration_help.html";
473
					$help_link = "help/expiration_help.html";
474
					$desc = $l_expiration;
474
					$desc = $l_expiration;
475
					break;
475
					break;
476
				case 'CoovaChilli-Max-Input-Octets' :
476
				case 'CoovaChilli-Max-Input-Octets' :
477
					$advanced = true;
477
					$advanced = true;
478
					$help_link = "help/coovachilli_max_input_octets_help.html";
478
					$help_link = "help/coovachilli_max_input_octets_help.html";
479
					$desc = $l_max_input_octets;
479
					$desc = $l_max_input_octets;
480
					break;
480
					break;
481
				case 'CoovaChilli-Max-Output-Octets' :
481
				case 'CoovaChilli-Max-Output-Octets' :
482
					$advanced = true;
482
					$advanced = true;
483
					$help_link = "help/coovachilli_max_output_octets_help.html";
483
					$help_link = "help/coovachilli_max_output_octets_help.html";
484
					$desc = $l_max_output_octets;
484
					$desc = $l_max_output_octets;
485
					break;
485
					break;
486
				case 'CoovaChilli-Max-Total-Octets' :
486
				case 'CoovaChilli-Max-Total-Octets' :
487
					$advanced = true;
487
					$advanced = true;
488
					$help_link = "help/coovachilli_max_total_octets_help.html";
488
					$help_link = "help/coovachilli_max_total_octets_help.html";
489
					$desc = $l_max_total_octets;
489
					$desc = $l_max_total_octets;
490
					break;
490
					break;
491
				case 'CoovaChilli-Max-Total-Octets-Daily' :
491
				case 'CoovaChilli-Max-Total-Octets-Daily' :
492
					$advanced = true;
492
					$advanced = true;
493
					$help_link = "help/coovachilli_max_total_octets_help.html";
493
					$help_link = "help/coovachilli_max_total_octets_help.html";
494
					$desc = $l_max_total_octets_daily;
494
					$desc = $l_max_total_octets_daily;
495
					break;
495
					break;
496
				case 'CoovaChilli-Max-Total-Octets-Monthly' :
496
				case 'CoovaChilli-Max-Total-Octets-Monthly' :
497
					$advanced = true;
497
					$advanced = true;
498
					$help_link = "help/coovachilli_max_total_octets_help.html";
498
					$help_link = "help/coovachilli_max_total_octets_help.html";
499
					$desc = $l_max_total_octets_monthly;
499
					$desc = $l_max_total_octets_monthly;
500
					break;
500
					break;
501
				case 'CoovaChilli-Bandwidth-Max-Up' :
501
				case 'CoovaChilli-Bandwidth-Max-Up' :
502
					$advanced = true;
502
					$advanced = true;
503
					$help_link = "help/coovachilli_bandwidth_max_up_help.html";
503
					$help_link = "help/coovachilli_bandwidth_max_up_help.html";
504
					$desc = $l_max_bandwidth_up;
504
					$desc = $l_max_bandwidth_up;
505
					break;
505
					break;
506
				case 'CoovaChilli-Bandwidth-Max-Down' :
506
				case 'CoovaChilli-Bandwidth-Max-Down' :
507
					$advanced = true;
507
					$advanced = true;
508
					$help_link = "help/coovachilli_bandwidth_max_down_help.html";
508
					$help_link = "help/coovachilli_bandwidth_max_down_help.html";
509
					$desc = $l_max_bandwidth_down;
509
					$desc = $l_max_bandwidth_down;
510
					break;
510
					break;
511
				case 'WISPr-Redirection-URL' :
511
				case 'WISPr-Redirection-URL' :
512
					$advanced = true;
512
					$advanced = true;
513
					$help_link = "help/wispr_redirection_url_help.html";
513
					$help_link = "help/wispr_redirection_url_help.html";
514
					$desc = $l_wispr_redirection;
514
					$desc = $l_wispr_redirection;
515
					break;
515
					break;
516
				case 'Alcasar-Filter' :
516
				case 'Alcasar-Filter' :
517
					$advanced = false;
517
					$advanced = false;
518
					$help_link = "help/filtering_help.html";
518
					$help_link = "help/filtering_help.html";
519
					$desc = $l_filtering;
519
					$desc = $l_filtering;
520
					break;
520
					break;
521
				case 'Alcasar-Protocols-Filter' :
521
				case 'Alcasar-Protocols-Filter' :
522
					$advanced = false;
522
					$advanced = false;
523
					$help_link = "help/protocols_help.html";
523
					$help_link = "help/protocols_help.html";
524
					$desc = $l_proto;
524
					$desc = $l_proto;
525
					break;
525
					break;
526
				case 'Alcasar-Status-Page-Must-Stay-Open' :
526
				case 'Alcasar-Status-Page-Must-Stay-Open' :
527
					$advanced = false;
527
					$advanced = false;
528
					$help_link = "help/statusOpenRequired_help.html";
528
					$help_link = "help/statusOpenRequired_help.html";
529
					$desc = $l_statusOpenRequired;
529
					$desc = $l_statusOpenRequired;
530
					break;
530
					break;
531
				case 'Alcasar-Expire-After' :
531
				case 'Alcasar-Expire-After' :
532
					$advanced = true;
532
					$advanced = true;
533
					$help_link = "help/expire_after_help.html";
533
					$help_link = "help/expire_after_help.html";
534
					$desc = $l_expire_after;
534
					$desc = $l_expire_after;
535
					break;
535
					break;
536
				default:
536
				default:
537
					$advanced = true;
537
					$advanced = true;
538
					break;
538
					break;
539
			}
539
			}
540
 
540
 
541
			$advancedField = ($advanced) ? ' class="advanced-field"' : '';
541
			$advancedField = ($advanced) ? ' class="advanced-field"' : '';
542
 
542
 
543
			if ($show_ops) {
543
			if ($show_ops) {
544
				print <<<EOM
544
				print <<<EOM
545
					<tr$advancedField>
545
					<tr$advancedField>
546
					<td class="etiquette">
546
					<td class="etiquette">
547
					<a href="$help_link" target="help" onclick="window.open('$help_link','help','width=600,height=350,toolbar=no,scrollbars=no,resizable=yes')" title="$l_click_for_help"><font color="blue">$desc</font></a>
547
					<a href="$help_link" target="help" onclick="window.open('$help_link','help','width=600,height=350,toolbar=no,scrollbars=no,resizable=yes')" title="$l_click_for_help"><font color="blue">$desc</font></a>
548
					</td>
548
					</td>
549
EOM;
549
EOM;
550
				if(!isset($selected[$op_eq])) $selected[$op_eq] = '';
550
				if(!isset($selected[$op_eq])) $selected[$op_eq] = '';
551
				switch ($key){
551
				switch ($key){
552
					case 'Simultaneous-Use' :
552
					case 'Simultaneous-Use' :
553
					case 'Max-All-Session' :
553
					case 'Max-All-Session' :
554
					case 'Max-Daily-Session' :
554
					case 'Max-Daily-Session' :
555
					case 'Max-Weekly-Session' :
555
					case 'Max-Weekly-Session' :
556
					case 'Max-Monthly-Session' :
556
					case 'Max-Monthly-Session' :
557
					case 'Login-Time' :
557
					case 'Login-Time' :
558
					case 'Expiration' :
558
					case 'Expiration' :
559
					case 'Alcasar-Expire-After' :
559
					case 'Alcasar-Expire-After' :
560
					case 'CoovaChilli-Max-Total-Octets-Daily' :
560
					case 'CoovaChilli-Max-Total-Octets-Daily' :
561
					case 'CoovaChilli-Max-Total-Octets-Monthly' :
561
					case 'CoovaChilli-Max-Total-Octets-Monthly' :
-
 
562
					case 'CoovaChilli-Max-Total-Octets' :
562
						echo "<td><select name=\"$oper_name\"><option $selected[$op_eq] value=\":=\">:=</option></select></td>";
563
						echo "<td><select name=\"$oper_name\"><option $selected[$op_eq] value=\":=\">:=</option></select></td>";
563
						break;
564
						break;
564
					case 'Session-Timeout' :
565
					case 'Session-Timeout' :
565
					case 'CoovaChilli-Max-Input-Octets' :
566
					case 'CoovaChilli-Max-Input-Octets' :
566
					case 'CoovaChilli-Max-Output-Octets' :
567
					case 'CoovaChilli-Max-Output-Octets' :
567
					case 'CoovaChilli-Max-Total-Octets' :
-
 
568
					case 'CoovaChilli-Bandwidth-Max-Up' :
568
					case 'CoovaChilli-Bandwidth-Max-Up' :
569
					case 'CoovaChilli-Bandwidth-Max-Down' :
569
					case 'CoovaChilli-Bandwidth-Max-Down' :
570
					case 'WISPr-Redirection-URL' :
570
					case 'WISPr-Redirection-URL' :
571
					case 'Alcasar-Filter' :
571
					case 'Alcasar-Filter' :
572
					case 'Alcasar-Protocols-Filter' :
572
					case 'Alcasar-Protocols-Filter' :
573
					case 'Alcasar-Status-Page-Must-Stay-Open' :
573
					case 'Alcasar-Status-Page-Must-Stay-Open' :
574
						echo "<td><select name=\"$oper_name\"><option $selected[$op_eq] value=\"=\">=</option></select></td>";
574
						echo "<td><select name=\"$oper_name\"><option $selected[$op_eq] value=\"=\">=</option></select></td>";
575
						break;
575
						break;
576
					default :
576
					default :
577
						print <<<EOM
577
						print <<<EOM
578
							<td>
578
							<td>
579
								<select name=\"$oper_name\">
579
								<select name=\"$oper_name\">
580
									<option $selected[$op_eq] value="=">=</option>
580
									<option $selected[$op_eq] value="=">=</option>
581
									<option $selected[$op_set] value=":=">:=</option>
581
									<option $selected[$op_set] value=":=">:=</option>
582
									<option $selected[$op_add] value="+=">+=</option>
582
									<option $selected[$op_add] value="+=">+=</option>
583
									<option $selected[$op_eq2] value="==">==</option>
583
									<option $selected[$op_eq2] value="==">==</option>
584
									<option $selected[$op_ne] value="!=">!=</option>
584
									<option $selected[$op_ne] value="!=">!=</option>
585
									<option $selected[$op_gt] value=">">&gt;</option>
585
									<option $selected[$op_gt] value=">">&gt;</option>
586
									<option $selected[$op_ge] value=">=">&gt;=</option>
586
									<option $selected[$op_ge] value=">=">&gt;=</option>
587
									<option $selected[$op_lt] value="<">&lt;</option>
587
									<option $selected[$op_lt] value="<">&lt;</option>
588
									<option $selected[$op_le] value="<=">&lt;=</option>
588
									<option $selected[$op_le] value="<=">&lt;=</option>
589
									<option $selected[$op_regeq] value="=~">=~</option>
589
									<option $selected[$op_regeq] value="=~">=~</option>
590
									<option $selected[$op_regne] value="!~">!~</option>
590
									<option $selected[$op_regne] value="!~">!~</option>
591
									<option $selected[$op_exst] value="=*">=*</option>
591
									<option $selected[$op_exst] value="=*">=*</option>
592
									<option $selected[$op_nexst] value="!*">!*</option>
592
									<option $selected[$op_nexst] value="!*">!*</option>
593
								</select>
593
								</select>
594
							</td>
594
							</td>
595
EOM;
595
EOM;
596
						break;
596
						break;
597
				}
597
				}
598
			} else {
598
			} else {
599
				print <<<EOM
599
				print <<<EOM
600
					<tr$advancedField>
600
					<tr$advancedField>
601
					<td class="etiquette" colspan="$colspan">
601
					<td class="etiquette" colspan="$colspan">
602
					<a href="$help_link" target="help" onclick="window.open('$help_link','help','width=600,height=350,toolbar=no,scrollbars=no,resizable=yes')" title="$l_click_for_help"><font color="blue">$desc</font></a>
602
					<a href="$help_link" target="help" onclick="window.open('$help_link','help','width=600,height=350,toolbar=no,scrollbars=no,resizable=yes')" title="$l_click_for_help"><font color="blue">$desc</font></a>
603
EOM;
603
EOM;
604
				switch ($key) {
604
				switch ($key) {
605
					case 'Simultaneous-Use' :
605
					case 'Simultaneous-Use' :
606
					case 'Max-All-Session' :
606
					case 'Max-All-Session' :
607
					case 'Max-Daily-Session' :
607
					case 'Max-Daily-Session' :
608
					case 'Max-Weekly-Session' :
608
					case 'Max-Weekly-Session' :
609
					case 'Max-Monthly-Session' :
609
					case 'Max-Monthly-Session' :
610
					case 'Login-Time' :
610
					case 'Login-Time' :
611
					case 'Expiration' :
611
					case 'Expiration' :
612
					case 'Alcasar-Expire-After' :
612
					case 'Alcasar-Expire-After' :
613
					case 'CoovaChilli-Max-Total-Octets-Daily' :
613
					case 'CoovaChilli-Max-Total-Octets-Daily' :
614
					case 'CoovaChilli-Max-Total-Octets-Monthly' :
614
					case 'CoovaChilli-Max-Total-Octets-Monthly' :
-
 
615
					case 'CoovaChilli-Max-Total-Octets' :
615
						echo "<input type=\"hidden\" name=\"$oper_name\" value=\":=\">";
616
						echo "<input type=\"hidden\" name=\"$oper_name\" value=\":=\">";
616
						break;
617
						break;
617
					case 'Session-Timeout' :
618
					case 'Session-Timeout' :
618
					case 'CoovaChilli-Max-Input-Octets' :
619
					case 'CoovaChilli-Max-Input-Octets' :
619
					case 'CoovaChilli-Max-Output-Octets' :
620
					case 'CoovaChilli-Max-Output-Octets' :
620
					case 'CoovaChilli-Max-Total-Octets' :
-
 
621
					case 'CoovaChilli-Bandwidth-Max-Up' :
621
					case 'CoovaChilli-Bandwidth-Max-Up' :
622
					case 'CoovaChilli-Bandwidth-Max-Down' :
622
					case 'CoovaChilli-Bandwidth-Max-Down' :
623
					case 'WISPr-Redirection-URL' :
623
					case 'WISPr-Redirection-URL' :
624
					case 'Alcasar-Filter' :
624
					case 'Alcasar-Filter' :
625
					case 'Alcasar-Protocols-Filter' :
625
					case 'Alcasar-Protocols-Filter' :
626
					case 'Alcasar-Status-Page-Must-Stay-Open' :
626
					case 'Alcasar-Status-Page-Must-Stay-Open' :
627
						echo "<input type=\"hidden\" name=\"$oper_name\" value=\"=\">";
627
						echo "<input type=\"hidden\" name=\"$oper_name\" value=\"=\">";
628
						break;
628
						break;
629
					default :
629
					default :
630
						print <<<EOM
630
						print <<<EOM
631
							<select name=\"$oper_name\">
631
							<select name=\"$oper_name\">
632
								<option $selected[$op_eq] value="=">=</option>
632
								<option $selected[$op_eq] value="=">=</option>
633
								<option $selected[$op_set] value=":=">:=</option>
633
								<option $selected[$op_set] value=":=">:=</option>
634
								<option $selected[$op_add] value="+=">+=</option>
634
								<option $selected[$op_add] value="+=">+=</option>
635
								<option $selected[$op_eq2] value="==">==</option>
635
								<option $selected[$op_eq2] value="==">==</option>
636
								<option $selected[$op_ne] value="!=">!=</option>
636
								<option $selected[$op_ne] value="!=">!=</option>
637
								<option $selected[$op_gt] value=">">&gt;</option>
637
								<option $selected[$op_gt] value=">">&gt;</option>
638
								<option $selected[$op_ge] value=">=">&gt;=</option>
638
								<option $selected[$op_ge] value=">=">&gt;=</option>
639
								<option $selected[$op_lt] value="<">&lt;</option>
639
								<option $selected[$op_lt] value="<">&lt;</option>
640
								<option $selected[$op_le] value="<=">&lt;=</option>
640
								<option $selected[$op_le] value="<=">&lt;=</option>
641
								<option $selected[$op_regeq] value="=~">=~</option>
641
								<option $selected[$op_regeq] value="=~">=~</option>
642
								<option $selected[$op_regne] value="!~">!~</option>
642
								<option $selected[$op_regne] value="!~">!~</option>
643
								<option $selected[$op_exst] value="=*">=*</option>
643
								<option $selected[$op_exst] value="=*">=*</option>
644
								<option $selected[$op_nexst] value="!*">!*</option>
644
								<option $selected[$op_nexst] value="!*">!*</option>
645
							</select>
645
							</select>
646
EOM;
646
EOM;
647
						break;
647
						break;
648
				}
648
				}
649
				echo '</td>';
649
				echo '</td>';
650
			}
650
			}
651
 
651
 
652
			if (isset($member_groups) && $user_type !== 'group') {
652
			if (isset($member_groups) && $user_type !== 'group') {
653
				echo '<td bgcolor="#BEBEBE">';
653
				echo '<td bgcolor="#BEBEBE">';
654
				switch ($key){
654
				switch ($key){
655
					case 'Simultaneous-Use' :
655
					case 'Simultaneous-Use' :
656
						echo "$grp_simuse";
656
						echo "$grp_simuse";
657
						break;
657
						break;
658
					case 'Login-Time' :
658
					case 'Login-Time' :
659
						echo "$grp_logtime";
659
						echo "$grp_logtime";
660
						break;
660
						break;
661
					case 'Expiration' :
661
					case 'Expiration' :
662
						echo "$grp_exp";
662
						echo "$grp_exp";
663
						break;
663
						break;
664
					case 'Max-All-Session' :
664
					case 'Max-All-Session' :
665
						echo "$grp_maxall";
665
						echo "$grp_maxall";
666
						break;
666
						break;
667
					case 'Session-Timeout' :
667
					case 'Session-Timeout' :
668
						echo "$grp_sesstim";
668
						echo "$grp_sesstim";
669
						break;
669
						break;
670
					case 'Max-Daily-Session' :
670
					case 'Max-Daily-Session' :
671
						echo "$grp_maxday";
671
						echo "$grp_maxday";
672
						break;
672
						break;
673
					case 'Max-Weekly-Session' :
673
					case 'Max-Weekly-Session' :
674
						echo "$grp_maxweek";
674
						echo "$grp_maxweek";
675
						break;
675
						break;
676
					case 'Max-Monthly-Session' :
676
					case 'Max-Monthly-Session' :
677
						echo "$grp_maxmonth";
677
						echo "$grp_maxmonth";
678
						break;
678
						break;
679
					case 'CoovaChilli-Max-Input-Octets' :
679
					case 'CoovaChilli-Max-Input-Octets' :
680
						echo "$grp_maxio";
680
						echo "$grp_maxio";
681
						break;
681
						break;
682
					case 'CoovaChilli-Max-Output-Octets' :
682
					case 'CoovaChilli-Max-Output-Octets' :
683
						echo "$grp_maxoo";
683
						echo "$grp_maxoo";
684
						break;
684
						break;
685
					case 'CoovaChilli-Max-Total-Octets' :
685
					case 'CoovaChilli-Max-Total-Octets' :
686
						echo "$grp_maxto";
686
						echo "$grp_maxto";
687
						break;
687
						break;
688
					case 'CoovaChilli-Max-Total-Octets-Daily' :
688
					case 'CoovaChilli-Max-Total-Octets-Daily' :
689
						echo "$grp_maxtoDaily";
689
						echo "$grp_maxtoDaily";
690
						break;
690
						break;
691
					case 'CoovaChilli-Max-Total-Octets-Monthly' :
691
					case 'CoovaChilli-Max-Total-Octets-Monthly' :
692
						echo "$grp_maxtoMonthly";
692
						echo "$grp_maxtoMonthly";
693
						break;
693
						break;
694
					case 'CoovaChilli-Bandwidth-Max-Up' :
694
					case 'CoovaChilli-Bandwidth-Max-Up' :
695
						echo "$grp_bwup";
695
						echo "$grp_bwup";
696
						break;
696
						break;
697
					case 'CoovaChilli-Bandwidth-Max-Down' :
697
					case 'CoovaChilli-Bandwidth-Max-Down' :
698
						echo "$grp_bwdown";
698
						echo "$grp_bwdown";
699
						break;
699
						break;
700
					case 'WISPr-Redirection-URL' :
700
					case 'WISPr-Redirection-URL' :
701
						echo "$grp_redir";
701
						echo "$grp_redir";
702
						break;
702
						break;
703
					case 'Alcasar-Filter' :
703
					case 'Alcasar-Filter' :
704
						echo "$grp_filter";
704
						echo "$grp_filter";
705
						break;
705
						break;
706
					case 'Alcasar-Protocols-Filter' :
706
					case 'Alcasar-Protocols-Filter' :
707
						echo "$grp_filterProto";
707
						echo "$grp_filterProto";
708
						break;
708
						break;
709
					case 'Alcasar-Status-Page-Must-Stay-Open' :
709
					case 'Alcasar-Status-Page-Must-Stay-Open' :
710
						echo "$grp_statusOpenRequired";
710
						echo "$grp_statusOpenRequired";
711
						break;
711
						break;
712
					case 'Alcasar-Expire-After' :
712
					case 'Alcasar-Expire-After' :
713
						echo "$grp_expireAfter";
713
						echo "$grp_expireAfter";
714
						break;
714
						break;
715
					default :
715
					default :
716
						break;
716
						break;
717
				}
717
				}
718
				echo '</td>';
718
				echo '</td>';
719
			}
719
			}
720
 
720
 
721
			echo '<td>';
721
			echo '<td>';
722
			switch ($key) {
722
			switch ($key) {
723
				/*
723
				/*
724
				Choix de l'unité jour, heures, minutes ou secondes
724
				Choix de l'unité jour, heures, minutes ou secondes
725
				pour les durées limites max, de session,de journée et de mois
725
				pour les durées limites max, de session,de journée et de mois
726
				*/
726
				*/
727
				case 'Session-Timeout' :
727
				case 'Session-Timeout' :
728
				case 'Max-Daily-Session' :
728
				case 'Max-Daily-Session' :
729
					/*valeur d'origine de durée limite */
729
					/*valeur d'origine de durée limite */
730
					echo"<input type=\"text\" name=\"$name1\" onfocus=\"this.value=''\" value=\"$val\" size=10>";
730
					echo"<input type=\"text\" name=\"$name1\" onfocus=\"this.value=''\" value=\"$val\" size=10>";
731
					/* Choix d'unité*/
731
					/* Choix d'unité*/
732
					echo" <select onchange=\"temps(this,'$name1','edituser')\">
732
					echo" <select onchange=\"temps(this,'$name1','edituser')\">
733
							<option value=\"s\" selected>s</option>
733
							<option value=\"s\" selected>s</option>
734
							<option value=\"m\" >m</option>
734
							<option value=\"m\" >m</option>
735
							<option value=\"H\" >H</option>
735
							<option value=\"H\" >H</option>
736
						</select>";
736
						</select>";
737
					break;
737
					break;
738
				case 'Max-Monthly-Session' :
738
				case 'Max-Monthly-Session' :
739
				case 'Max-All-Session' :
739
				case 'Max-All-Session' :
740
				case 'Alcasar-Expire-After' :
740
				case 'Alcasar-Expire-After' :
741
					/*valeur d'origine de durée limite */
741
					/*valeur d'origine de durée limite */
742
					echo"<input type=\"text\" name=\"$name1\" onfocus=\"this.value=''\" value=\"$val\" size=10>";
742
					echo"<input type=\"text\" name=\"$name1\" onfocus=\"this.value=''\" value=\"$val\" size=10>";
743
					/* Choix d'unité*/
743
					/* Choix d'unité*/
744
					echo" <select onchange=\"temps(this,'$name1','edituser')\">
744
					echo" <select onchange=\"temps(this,'$name1','edituser')\">
745
							<option value=\"s\" selected>s</option>
745
							<option value=\"s\" selected>s</option>
746
							<option value=\"m\" >m</option>
746
							<option value=\"m\" >m</option>
747
							<option value=\"H\" >H</option>
747
							<option value=\"H\" >H</option>
748
							<option value=\"J\" >J</option>
748
							<option value=\"J\" >J</option>
749
						</select>";
749
						</select>";
750
					break;
750
					break;
751
				case 'Expiration' :
751
				case 'Expiration' :
752
					/*Ajout du calendrier pour choisir la date*/
752
					/*Ajout du calendrier pour choisir la date*/
753
					echo"<input id=\"popup_container\" type=\"text\" name=\"$name1\" value=\"$val\" size=\"20\">";
753
					echo"<input id=\"popup_container\" type=\"text\" name=\"$name1\" value=\"$val\" size=\"20\">";
754
					break;
754
					break;
755
				case 'Alcasar-Filter' :
755
				case 'Alcasar-Filter' :
756
					echo "<select name=\"$name1\">";
756
					echo "<select name=\"$name1\">";
757
					echo "<option value=\"\"".(($val === '') ? ' selected' : '')."></option>";
757
					echo "<option value=\"\"".(($val === '') ? ' selected' : '')."></option>";
758
					echo "<option value=\"1\"".(($val === '1') ? ' selected' : '').">$l_filtering_none</option>";
758
					echo "<option value=\"1\"".(($val === '1') ? ' selected' : '').">$l_filtering_none</option>";
759
					echo "<option value=\"2\"".(($val === '2') ? ' selected' : '').">$l_filtering_havp</option>";
759
					echo "<option value=\"2\"".(($val === '2') ? ' selected' : '').">$l_filtering_havp</option>";
760
					echo "<option value=\"3\"".(($val === '3') ? ' selected' : '').">$l_filtering_havp_bl</option>";
760
					echo "<option value=\"3\"".(($val === '3') ? ' selected' : '').">$l_filtering_havp_bl</option>";
761
					echo "<option value=\"4\"".(($val === '4') ? ' selected' : '').">$l_filtering_havp_wl</option>";
761
					echo "<option value=\"4\"".(($val === '4') ? ' selected' : '').">$l_filtering_havp_wl</option>";
762
					echo "</select>";
762
					echo "</select>";
763
					break;
763
					break;
764
				case 'Alcasar-Protocols-Filter' :
764
				case 'Alcasar-Protocols-Filter' :
765
					echo "<select name=\"$name1\">";
765
					echo "<select name=\"$name1\">";
766
					echo "<option value=\"\"".(($val === '') ? ' selected' : '')."></option>";
766
					echo "<option value=\"\"".(($val === '') ? ' selected' : '')."></option>";
767
					echo "<option value=\"1\"".(($val === '1') ? ' selected' : '').">$l_proto_0</option>";
767
					echo "<option value=\"1\"".(($val === '1') ? ' selected' : '').">$l_proto_0</option>";
768
					echo "<option value=\"2\"".(($val === '2') ? ' selected' : '').">$l_proto_1</option>";
768
					echo "<option value=\"2\"".(($val === '2') ? ' selected' : '').">$l_proto_1</option>";
769
					echo "<option value=\"3\"".(($val === '3') ? ' selected' : '').">$l_proto_2</option>";
769
					echo "<option value=\"3\"".(($val === '3') ? ' selected' : '').">$l_proto_2</option>";
770
					echo "<option value=\"4\"".(($val === '4') ? ' selected' : '').">$l_proto_3</option>";
770
					echo "<option value=\"4\"".(($val === '4') ? ' selected' : '').">$l_proto_3</option>";
771
					echo "</select>";
771
					echo "</select>";
772
					break;
772
					break;
773
				case 'Alcasar-Status-Page-Must-Stay-Open' :
773
				case 'Alcasar-Status-Page-Must-Stay-Open' :
774
					echo "<label><input type=\"radio\" name=\"$name1\" value=\"\"".(($val !== '2') ? ' checked' : '').">$l_yes</label>
774
					echo "<label><input type=\"radio\" name=\"$name1\" value=\"\"".(($val !== '2') ? ' checked' : '').">$l_yes</label>
775
						<label><input type=\"radio\" name=\"$name1\" value=\"2\"".(($val === '2') ? ' checked' : '').">$l_no</label>";
775
						<label><input type=\"radio\" name=\"$name1\" value=\"2\"".(($val === '2') ? ' checked' : '').">$l_no</label>";
776
					break;
776
					break;
777
				case 'Login-Time':
777
				case 'Login-Time':
778
					echo "<input type=\"text\" name=\"$name1\" id=\"$name\" value=\"$val\" size=\"20\" pattern=\"^((Mo|Tu|We|Th|Fr|Sa|Su|Wk|Any)[0-9]{4}-[0-9]{4},){0,}(Mo|Tu|We|Th|Fr|Sa|Su|Wk|Any)[0-9]{4}-[0-9]{4}$\">";
778
					echo "<input type=\"text\" name=\"$name1\" id=\"$name\" value=\"$val\" size=\"20\" pattern=\"^((Mo|Tu|We|Th|Fr|Sa|Su|Wk|Any)[0-9]{4}-[0-9]{4},){0,}(Mo|Tu|We|Th|Fr|Sa|Su|Wk|Any)[0-9]{4}-[0-9]{4}$\">";
779
					echo "<a id=\"login-time-calendar\" href=\"#\"><img alt=\"schedule\" src=\"images/calendar.png\"/></a>";
779
					echo "<a id=\"login-time-calendar\" href=\"#\"><img alt=\"schedule\" src=\"images/calendar.png\"/></a>";
780
					echo '<div id="login-time-dialog" title="Weekly period"><div id="login-time-schedule"></div></div>';
780
					echo '<div id="login-time-dialog" title="Weekly period"><div id="login-time-schedule"></div></div>';
781
					break;
781
					break;
782
				default :
782
				default :
783
					echo "<input type=\"text\" name=\"$name1\" value=\"$val\" size=\"20\">";
783
					echo "<input type=\"text\" name=\"$name1\" value=\"$val\" size=\"20\">";
784
					break;
784
					break;
785
			}
785
			}
786
			echo '</td>';
786
			echo '</td>';
787
		}
787
		}
788
	}
788
	}
789
 
789
 
790
	if ($user_type != 'group') {
790
	if ($user_type != 'group') {
791
		echo <<<EOM
791
		echo <<<EOM
792
		<tr>
792
		<tr>
793
		<td align=right colspan="$colspan" bgcolor="#d0ddb0">
793
		<td align=right colspan="$colspan" bgcolor="#d0ddb0">
794
		$l_group_member<br><font size=-2><i>($l_main_group)</i></font>
794
		$l_group_member<br><font size=-2><i>($l_main_group)</i></font>
795
		</td>
795
		</td>
796
EOM;
796
EOM;
797
	if (isset($member_groups)) {
797
	if (isset($member_groups)) {
798
		echo '<td colspan="2">';
798
		echo '<td colspan="2">';
799
	} else {
799
	} else {
800
		echo '<td>';
800
		echo '<td>';
801
	}
801
	}
802
 
802
 
803
 
803
 
804
	if (isset($existing_groups)){
804
	if (isset($existing_groups)){
805
		echo '<select size="5" name="edited_groups[]"  OnChange="this.form.group_change.value=1">';
805
		echo '<select size="5" name="edited_groups[]"  OnChange="this.form.group_change.value=1">';
806
		if ($config['sql_show_all_groups'] == 'true') {
806
		if ($config['sql_show_all_groups'] == 'true') {
807
			foreach ($existing_groups as $group => $count) {
807
			foreach ($existing_groups as $group => $count) {
808
				if (isset($member_groups[$group]) && ($member_groups[$group] == $group))
808
				if (isset($member_groups[$group]) && ($member_groups[$group] == $group))
809
					echo "<option selected value=\"$group\">$group\n";
809
					echo "<option selected value=\"$group\">$group\n";
810
				else if(isset($member_groups[0]) && ($member_groups[0] == $group))
810
				else if(isset($member_groups[0]) && ($member_groups[0] == $group))
811
					echo "<option selected value=\"$group\">$group\n";
811
					echo "<option selected value=\"$group\">$group\n";
812
				else
812
				else
813
					echo "<option value=\"$group\">$group\n";
813
					echo "<option value=\"$group\">$group\n";
814
			}
814
			}
815
		} else {
815
		} else {
816
			foreach ($member_groups as $group)
816
			foreach ($member_groups as $group)
817
				echo "<option value=\"$group\">$group\n";
817
				echo "<option value=\"$group\">$group\n";
818
		}
818
		}
819
		echo "</select>";
819
		echo "</select>";
820
	}
820
	}
821
	else{
821
	else{
822
		echo "<i>$l_no_group</i>";
822
		echo "<i>$l_no_group</i>";
823
	}
823
	}
824
	
824
	
825
	echo "</td></tr>";
825
	echo "</td></tr>";
826
}
826
}
827
echo "</table><br>";
827
echo "</table><br>";
828
echo "<input type=submit class=button value=$l_change OnClick=\"this.form.change.value=1\">";
828
echo "<input type=submit class=button value=$l_change OnClick=\"this.form.change.value=1\">";
829
echo "<button type=\"button\" id =\"show-advanced-fields\" onclick=\"showAdvancedFields(true)\" style=\"float: right;\">$l_simple_menu</button>";
829
echo "<button type=\"button\" id =\"show-advanced-fields\" onclick=\"showAdvancedFields(true)\" style=\"float: right;\">$l_simple_menu</button>";
830
echo "<button type=\"button\" id =\"hide-advanced-fields\" onclick=\"showAdvancedFields(false)\" style=\"float: right; display: none;\">$l_advanced_menu</button>";
830
echo "<button type=\"button\" id =\"hide-advanced-fields\" onclick=\"showAdvancedFields(false)\" style=\"float: right; display: none;\">$l_advanced_menu</button>";
831
//if ($user_type != 'group'){
831
//if ($user_type != 'group'){
832
//	echo <<<EOM
832
//	echo <<<EOM
833
//<br><br>
833
//<br><br>
834
//<input type=submit class=button value="Add to Badusers" OnClick="this.form.badusers.value=1">
834
//<input type=submit class=button value="Add to Badusers" OnClick="this.form.badusers.value=1">
835
//<a href="help/badusers_help.html" target=bu_help onclick=window.open("help/badusers_help.html","bu_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="BADUSERS Help Page"><font color="blue">&lt;--Help</font></a>
835
//<a href="help/badusers_help.html" target=bu_help onclick=window.open("help/badusers_help.html","bu_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="BADUSERS Help Page"><font color="blue">&lt;--Help</font></a>
836
//EOM;
836
//EOM;
837
//}
837
//}
838
?>
838
?>
839
</form>
839
</form>
840
</td></tr>
840
</td></tr>
841
</table>
841
</table>
842
</td></tr>
842
</td></tr>
843
</table>
843
</table>
844
</center>
844
</center>
845
</td></tr>
845
</td></tr>
846
</TABLE>
846
</TABLE>
847
<script type="text/javascript" src="/js/jquery.min.js"></script>
847
<script type="text/javascript" src="/js/jquery.min.js"></script>
848
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
848
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
849
<script type="text/javascript" src="/js/schedule.js"></script>
849
<script type="text/javascript" src="/js/schedule.js"></script>
850
<script type="text/javascript" src="/js/login-time.js"></script>
850
<script type="text/javascript" src="/js/login-time.js"></script>
851
</body>
851
</body>
852
</html>
852
</html>
853
 
853