diff --git a/acl/acl-lib.pl b/acl/acl-lib.pl index 7933b2598..1553b33c9 100755 --- a/acl/acl-lib.pl +++ b/acl/acl-lib.pl @@ -1299,6 +1299,19 @@ foreach my $u (split(/\s+/, $access{'users'})) { return 0; } +=head2 can_module_acl(&mod) + +Returns 1 if the given module has ability to manage its own ACLs. + +=cut +sub can_module_acl +{ +my ($mod) = @_; +my $mdir = &module_root_directory($mod); +return 1 if (-f "$mdir/acl_security.pl" || -f "$mdir/config.info"); +return 0; +} + =head2 open_session_db(\%miniserv) Opens the session database, and ties it to the sessiondb hash. Parameters are : diff --git a/acl/edit_user.cgi b/acl/edit_user.cgi index b110513fc..3724c65ee 100755 --- a/acl/edit_user.cgi +++ b/acl/edit_user.cgi @@ -404,7 +404,8 @@ foreach my $c (sort { $b cmp $a } @cats) { } elsif ($mcan{$md}) { my $label; - if ($access{'acl'} && $in{'user'} && !$safe) { + if ($access{'acl'} && $in{'user'} && !$safe && + &can_module_acl($m)) { # Show link for editing ACL $label = ui_link("edit_acl.cgi?" . "mod=" . urlize($m->{'dir'}) .