Handle hostnames with upper-case letters
[webmin.git] / cluster-passwd / index.cgi
1 #!/usr/local/bin/perl
2 # index.cgi
3 # Show a list of all users whose passwords can be changed
4
5 require './cluster-passwd-lib.pl';
6
7 # Check if cluster-useradmin is set up
8 @hosts = &cluster_useradmin::list_useradmin_hosts();
9 if (!@hosts) {
10         &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
11         &ui_print_endpage(&text('index_noservers', "../cluster-useradmin/"));
12         }
13 @ulist = grep { &can_edit_passwd($_) } &get_all_users(\@hosts);
14 if (@ulist == 1) {
15         # Can only edit one user, so re-direct to editing form
16         &redirect("edit_passwd.cgi?user=$ulist[0]->{'user'}&one=1");
17         }
18
19 &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
20 if ($config{'sort_mode'}) {
21         @ulist = sort { lc($a->{'user'}) cmp lc($b->{'user'}) } @ulist;
22         }
23
24 print &text('index_hosts', scalar(@hosts)),"<p>\n";
25
26 if ($config{'max_users'} && @ulist > $config{'max_users'}) {
27         # Show as form for entering a username
28         print "$passwd::text{'index_toomany'}<br>\n";
29         print &ui_form_start("edit_passwd.cgi");
30         print &ui_submit($passwd::text{'index_user'});
31         if ($config{'input_type'}) {
32                 print &ui_select("user", undef,
33                                  [ map { [ $_->{'user'} ] } @ulist ]);
34                 }
35         else {
36                 print &ui_user_textbox("user");
37                 }
38         print &ui_form_end();
39         }
40 else {
41         # Show as table of users
42         print &ui_table_start($passwd::text{'index_header'}, "width=100%");
43         for($i=0; $i<@ulist; $i++) {
44                 if ($i%4 == 0) { print "<tr>\n"; }
45                 print "<td width=25%><a href=\"edit_passwd.cgi?",
46                       "user=$ulist[$i]->{'user'}\">",
47                       &html_escape($ulist[$i]->{'user'})."</a></td>\n";
48                 if ($i%4 == 3) { print "</tr>\n"; }
49                 }
50         while($i++ % 4) { print "<td width=25%></td>\n"; }
51         print &ui_table_end();
52         }
53
54 &ui_print_footer("/", $text{'index'});
55