Subversion Repositories ALCASAR

Rev

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

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