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