Handle hostnames with upper-case letters
[webmin.git] / acl / delete_groups.cgi
1 #!/usr/local/bin/perl
2 # Delete a bunch of Webmin groups
3
4 require './acl-lib.pl';
5 &ReadParse();
6 &error_setup($text{'gdeletes_err'});
7 $access{'groups'} || &error($text{'gdelete_ecannot'});
8
9 # Validate inputs
10 @d = split(/\0/, $in{'d'});
11 @d || &error($text{'udeletes_enone'});
12 @glist = &list_groups();
13 $ucount = 0;
14 foreach $g (@d) {
15         ($group) = grep { $_->{'name'} eq $g } @glist;
16         foreach $m (@{$group->{'members'}}) {
17                 &error($text{'gdelete_esub'}) if ($m =~ /^\@/);
18                 &error($text{'gdelete_euser'}) if ($m eq $base_remote_user);
19                 $ucount++;
20                 }
21         }
22
23 if ($in{'confirm'}) {
24         # Do it
25         foreach $g (@d) {
26                 ($group) = grep { $_->{'name'} eq $g } @glist;
27                 &delete_group($g);
28                 foreach $m (@{$group->{'members'}}) {
29                         if ($u =~ /^\@(.*)/) {
30                                 &delete_group("$1");
31                                 }
32                         else {
33                                 &delete_user($u);
34                                 }
35                         }
36                 &delete_from_groups("\@".$g);
37                 }
38
39         &reload_miniserv();
40         &webmin_log("delete", "groups", scalar(@d));
41         &redirect("");
42         }
43 else {
44         # Ask the user if he is sure
45         &ui_print_header(undef, $text{'gdeletes_title'}, "");
46
47         print "<center>\n";
48         print &ui_form_start("delete_groups.cgi", "post");
49         foreach $g (@d) {
50                 print &ui_hidden("d", $g),"\n";
51                 }
52         print &text('gdeletes_rusure', scalar(@d), $ucount),"<p>\n";
53
54         print &ui_form_end([ [ "confirm", $text{'gdeletes_ok'} ] ]);
55
56         print &text('gdeletes_users', join(" ", map { "<tt>$_</tt>" } @d)),
57               "<p>\n";
58         print "</center>\n";
59
60         &ui_print_footer("", $text{'index_return'});
61         }
62