324 |
richard |
1 |
<?php
|
|
|
2 |
require('/etc/freeradius-web/config.php');
|
597 |
richard |
3 |
if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php"))
|
|
|
4 |
include_once("../lib/sql/drivers/$config[sql_type]/functions.php");
|
|
|
5 |
else{
|
|
|
6 |
echo <<<EOM
|
|
|
7 |
<title>Fermeture des sessions ouvertes pour l'utilisateur $login</title>
|
|
|
8 |
<meta http-equiv="Content-Type" content="text/html; charset=$config[general_charset]">
|
|
|
9 |
<link rel="stylesheet" href="style.css">
|
|
|
10 |
</head>
|
|
|
11 |
<body>
|
|
|
12 |
<center>
|
|
|
13 |
<b>Could not include SQL library functions. Aborting</b>
|
|
|
14 |
</body>
|
|
|
15 |
</html>
|
|
|
16 |
EOM;
|
|
|
17 |
exit();
|
|
|
18 |
}
|
|
|
19 |
|
324 |
richard |
20 |
echo <<<EOM
|
|
|
21 |
<html>
|
|
|
22 |
<head>
|
|
|
23 |
<title>Fermeture des sessions ouvertes pour l'usager : $login</title>
|
|
|
24 |
<meta http-equiv="Content-Type" content="text/html; charset=$config[general_charset]">
|
|
|
25 |
<link rel="stylesheet" href="/css/style.css">
|
|
|
26 |
</head>
|
|
|
27 |
<body>
|
|
|
28 |
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
|
29 |
<tr><th>Gestion des usagers</th></tr>
|
|
|
30 |
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1"
|
|
|
31 |
height="2"></td></tr>
|
|
|
32 |
</TABLE>
|
|
|
33 |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=1>
|
|
|
34 |
<tr bgcolor="#666666"><td>
|
|
|
35 |
<TABLE width="100%" border=0 cellspacing=0 cellpadding=2>
|
|
|
36 |
<tr><td valign="middle" align="left">
|
|
|
37 |
<center>
|
|
|
38 |
<table border=0 width=550 cellpadding=0 cellspacing=0>
|
|
|
39 |
<tr valign=top>
|
|
|
40 |
<!--<td align=center><img src="images/title2.gif"></td>-->
|
|
|
41 |
</tr>
|
|
|
42 |
</table>
|
|
|
43 |
|
|
|
44 |
<table border=0 width=400 cellpadding=0 cellspacing=2>
|
|
|
45 |
EOM;
|
|
|
46 |
|
|
|
47 |
include("../html/user_toolbar.html.php");
|
|
|
48 |
|
|
|
49 |
print <<<EOM
|
|
|
50 |
</table>
|
|
|
51 |
|
|
|
52 |
<br>
|
|
|
53 |
<table border=0 width=540 cellpadding=1 cellspacing=1>
|
|
|
54 |
<tr valign=top>
|
|
|
55 |
<td width=340></td>
|
|
|
56 |
<td bgcolor="black" width=200>
|
|
|
57 |
<table border=0 width=100% cellpadding=2 cellspacing=0>
|
|
|
58 |
<tr bgcolor="#907030" align=right valign=top><th>
|
|
|
59 |
<font color="white">Fermeture des sessions ouvertes pour l'usager : $login</font>
|
|
|
60 |
</th></tr>
|
|
|
61 |
</table>
|
|
|
62 |
</td></tr>
|
|
|
63 |
<tr bgcolor="black" valign=top><td colspan=2>
|
|
|
64 |
<table border=0 width=100% cellpadding=12 cellspacing=0 bgcolor="#ffffd0" valign=top>
|
|
|
65 |
<tr><td>
|
|
|
66 |
EOM;
|
597 |
richard |
67 |
|
324 |
richard |
68 |
if ($clear_sessions == 1)
|
|
|
69 |
{
|
606 |
richard |
70 |
# close active sessions
|
324 |
richard |
71 |
exec ("sudo /usr/local/sbin/alcasar-logout.sh $login");
|
606 |
richard |
72 |
# delete open accounting sessions
|
613 |
richard |
73 |
$now = time();
|
|
|
74 |
$today_now = date("Y-m-d H:i:s",$now);
|
606 |
richard |
75 |
$link = @da_sql_pconnect($config);
|
|
|
76 |
if ($link)
|
597 |
richard |
77 |
{
|
606 |
richard |
78 |
$res = @da_sql_query($link,$config,
|
613 |
richard |
79 |
"UPDATE $config[sql_accounting_table] SET acctstoptime = '$today_now', acctterminatecause='Admin-Reset'
|
606 |
richard |
80 |
WHERE username='$login' AND acctstoptime IS NULL;");
|
|
|
81 |
if (! $res)
|
|
|
82 |
echo "<b>Error deleting open sessions for user" . da_sql_error($link,$config) . "</b><br>\n";
|
597 |
richard |
83 |
}
|
606 |
richard |
84 |
else
|
|
|
85 |
echo "<b>Could not connect to SQL database</b><br>\n";
|
324 |
richard |
86 |
}
|
606 |
richard |
87 |
# Count of accounting open sessions (in database)
|
|
|
88 |
$open_accnt_sessions = 0;
|
597 |
richard |
89 |
$link = @da_sql_pconnect($config);
|
|
|
90 |
if ($link){
|
|
|
91 |
$search = @da_sql_query($link,$config,
|
|
|
92 |
"SELECT COUNT(*) AS counter FROM $config[sql_accounting_table]
|
606 |
richard |
93 |
WHERE username = '$login' AND acctstoptime IS NULL;");
|
597 |
richard |
94 |
if ($search){
|
|
|
95 |
if ($row = @da_sql_fetch_array($search,$config))
|
606 |
richard |
96 |
$open_accnt_sessions = $row['counter'];
|
597 |
richard |
97 |
}
|
|
|
98 |
else
|
|
|
99 |
echo "<b>Database query failed: " . da_sql_error($link,$config) . "</b><br>\n";
|
|
|
100 |
}
|
|
|
101 |
else
|
|
|
102 |
echo "<b>Could not connect to SQL database</b><br>\n";
|
606 |
richard |
103 |
|
|
|
104 |
# Count of chilli open sessions (for coova-chilli)
|
|
|
105 |
$open_chilli_sessions = 0;
|
|
|
106 |
exec ("sudo /usr/sbin/chilli_query list|cut -d\" \" -f5,6|grep $login|grep ^1|wc -l" , $open_chilli_sessions);
|
|
|
107 |
|
324 |
richard |
108 |
?>
|
|
|
109 |
<form method=post>
|
|
|
110 |
<input type=hidden name=login value=<?php print $login ?>>
|
|
|
111 |
<input type=hidden name=clear_sessions value="0">
|
|
|
112 |
<table border=1 bordercolordark=#ffffe0 bordercolorlight=#000000 width=100% cellpadding=2 cellspacing=0 bgcolor="#ffffe0" valign=top>
|
|
|
113 |
<tr>
|
|
|
114 |
<td align=center>
|
|
|
115 |
<?
|
606 |
richard |
116 |
if (($open_accnt_sessions == 0) && ($open_chilli_sessions[0] == 0))
|
324 |
richard |
117 |
{
|
|
|
118 |
echo "L'usager $login n'a pas de session ouverte";
|
|
|
119 |
}
|
|
|
120 |
else {
|
606 |
richard |
121 |
echo "L'usager '$login' a <i>$open_chilli_sessions[0]</i> session(s) ouverte(s) et <i>$open_accnt_sessions</i> comptabilité(s) actives(s)<br><br>";
|
|
|
122 |
echo "Voulez-vous les fermer?";
|
324 |
richard |
123 |
echo "<input type=submit class=button value=\"Oui, Fermer\" OnClick=\"this.form.clear_sessions.value=1\">";
|
|
|
124 |
}
|
|
|
125 |
?>
|
|
|
126 |
</form>
|
|
|
127 |
</td></tr></table>
|
|
|
128 |
</td></tr></table>
|
|
|
129 |
</TD></TR></TABLE>
|
|
|
130 |
</body>
|
|
|
131 |
</html>
|