Handle hostnames with upper-case letters
[webmin.git] / acl / postinstall.pl
1
2 require 'acl-lib.pl';
3
4 # Rename the .acl files for any groups to .gacl files
5 sub module_install
6 {
7 # Fix up .acl files
8 my @mods = &get_all_module_infos();
9 my %isuser = map { $_->{'name'}, 1 } &list_users();
10 foreach my $g (&list_groups()) {
11         next if ($isuser{$g->{'name'}});
12         next if ($g->{'proto'});
13         foreach my $m (@mods) {
14                 if (-r "$config_directory/$m->{'dir'}/$g->{'name'}.acl") {
15                         rename("$config_directory/$m->{'dir'}/$g->{'name'}.acl",
16                              "$config_directory/$m->{'dir'}/$g->{'name'}.gacl");
17                         }
18                 }
19         }
20
21 # Update sub-groups in webmin.groups file to use @ names
22 foreach my $g (&list_groups()) {
23         my (@newmembers, $any);
24         foreach my $u (@{$g->{'members'}}) {
25                 if ($u !~ /^\@/ && !$isuser{$u}) {
26                         push(@newmembers, '@'.$u);
27                         $any = 1;
28                         }
29                 else {
30                         push(@newmembers, $u);
31                         }
32                 }
33         $g->{'members'} = \@newmembers;
34         if ($any) {
35                 &modify_group($g->{'name'}, $g);
36                 }
37         }
38 }
39