Read and write group ACL when editing a group
authorJamie Cameron <jcameron@webmin.com>
Wed, 5 Jan 2011 21:57:49 +0000 (13:57 -0800)
committerJamie Cameron <jcameron@webmin.com>
Wed, 5 Jan 2011 21:57:49 +0000 (13:57 -0800)
https://sourceforge.net/tracker/?func=detail&atid=117457&aid=3151868&group_id=17457

cluster-webmin/edit_acl.cgi
cluster-webmin/save_acl.cgi

index ce66bd3..95b4af8 100755 (executable)
@@ -69,7 +69,14 @@ $desc = &text($user ? 'acl_title2'.$ga : 'acl_title3'.$ga,
 
 # Get the host's ACL options
 &remote_foreign_require($serv->{'host'}, "acl", "acl-lib.pl");
-$aref = &remote_eval($serv->{'host'}, "acl", "\%rv = &get_module_acl('$who', '$mod->{'dir'}'); \\%rv");
+if ($user) {
+       $aref = &remote_eval($serv->{'host'}, "acl",
+               "\%rv = &get_module_acl('$who', '$mod->{'dir'}'); \\%rv");
+       }
+else {
+       $aref = &remote_eval($serv->{'host'}, "acl",
+               "\%rv = &get_group_module_acl('$who', '$mod->{'dir'}'); \\%rv");
+       }
 %access = %$aref;
 
 # Display the editor form from this host
index 4097e05..c9011d3 100755 (executable)
@@ -70,9 +70,11 @@ foreach $h (@hosts) {
                        }
 
                # Save the .acl file
-               local $cd = &remote_eval($s->{'host'}, "acl", '$config_directory');
+               local $cd = &remote_eval($s->{'host'}, "acl",
+                                        '$config_directory');
+               $sfx = $in{'_acl_user'} ? "acl" : "gacl";
                &remote_foreign_call($s->{'host'}, "acl", "write_file",
-                       "$cd/$in{'_acl_mod'}/$who.acl", \%maccess);
+                       "$cd/$in{'_acl_mod'}/$who.$sfx", \%maccess);
 
                # Recursively update the ACL for all member users and groups
                if ($in{'_acl_group'}) {