Handle hostnames with upper-case letters
[webmin.git] / usermin / list_sessions.cgi
1 #!/usr/local/bin/perl
2 # list_sessions.cgi
3 # Display current login sessions
4
5 require './usermin-lib.pl';
6 $access{'sessions'} || &error($text{'sessions_ecannot'});
7 &ui_print_header(undef, $text{'sessions_title'}, "");
8
9 &get_usermin_miniserv_config(\%miniserv);
10 &acl::open_session_db(\%miniserv);
11 $time_now = time();
12
13 if (&foreign_available("useradmin")) {
14         &foreign_require("useradmin", "user-lib.pl");
15         @users = &useradmin::list_users();
16         %umap = map { $_->{'user'}, $_ } @users;
17         }
18
19 print "<b>$text{'sessions_desc'}</b><p>\n";
20 @keys = keys %acl::sessiondb;
21 if (@keys) {
22         print &ui_columns_start([ $text{'sessions_id'},
23                                   $text{'sessions_user'},
24                                   $text{'sessions_host'},
25                                   $text{'sessions_login'} ]);
26         foreach $k (sort { @a=split(/\s+/, $acl::sessiondb{$a}); @b=split(/\s+/, $acl::sessiondb{$b}); $b[1] <=> $a[1] } @keys) {
27                 next if ($k =~ /^1111111/);
28                 local ($user, $ltime, $lip) = split(/\s+/, $acl::sessiondb{$k});
29                 next if ($miniserv{'logouttime'} &&
30                          $time_now - $ltime > $miniserv{'logouttime'}*60);
31                 @cols = ( "<a href='delete_session.cgi?id=$k'>$k</a>" );
32                 if ($uinfo = $umap{$user}) {
33                         push(@cols, "<a href='../useradmin/edit_user.cgi?num=$uinfo->{'num'}'>$user</a>");
34                         }
35                 else {
36                         push(@cols, $user);
37                         }
38                 push(@cols, $lip);
39                 push(@cols, &make_date($ltime));
40                 print &ui_columns_row(\@cols);
41                 }
42         print &ui_columns_end();
43         }
44 else {
45         print "<b>$text{'sessions_none'}</b><p>\n";
46         }
47
48 # Show quick switch form
49 print &ui_hr();
50 print &ui_form_start("switch.cgi", "get", "_new");
51 print $text{'sessions_switch'},"\n";
52 print &ui_user_textbox("user");
53 print &ui_submit($text{'sessions_ok'});
54 print &ui_form_end();
55
56 &ui_print_footer("", $text{'index_return'});
57