]> git.proxmox.com Git - pve-access-control.git/blobdiff - PVE/AccessControl.pm
user.cfg: sort group and pool members, role privs
[pve-access-control.git] / PVE / AccessControl.pm
index 3e52c5f5389ae6b5c7d3216a3f014535b37119b8..1ba1596668e383ef6dac9ac4a38d63225978b1cb 100644 (file)
@@ -965,6 +965,8 @@ sub parse_user_config {
        } elsif ($et eq 'acl') {
            my ($propagate, $pathtxt, $uglist, $rolelist) = @data;
 
+           $propagate = $propagate ? 1 : 0;
+
            if (my $path = normalize_path($pathtxt)) {
                foreach my $role (split_list($rolelist)) {
 
@@ -1065,7 +1067,7 @@ sub write_user_config {
 
     foreach my $group (sort keys %{$cfg->{groups}}) {
        my $d = $cfg->{groups}->{$group};
-       my $list = join (',', keys %{$d->{users}});
+       my $list = join (',', sort keys %{$d->{users}});
        my $comment = $d->{comment} ? PVE::Tools::encode_text($d->{comment}) : '';
        $data .= "group:$group:$list:$comment:\n";
     }
@@ -1074,8 +1076,8 @@ sub write_user_config {
 
     foreach my $pool (sort keys %{$cfg->{pools}}) {
        my $d = $cfg->{pools}->{$pool};
-       my $vmlist = join (',', keys %{$d->{vms}});
-       my $storelist = join (',', keys %{$d->{storage}});
+       my $vmlist = join (',', sort keys %{$d->{vms}});
+       my $storelist = join (',', sort keys %{$d->{storage}});
        my $comment = $d->{comment} ? PVE::Tools::encode_text($d->{comment}) : '';
        $data .= "pool:$pool:$comment:$vmlist:$storelist:\n";
     }
@@ -1086,7 +1088,7 @@ sub write_user_config {
        next if $special_roles->{$role};
 
        my $d = $cfg->{roles}->{$role};
-       my $list = join (',', keys %$d);
+       my $list = join (',', sort keys %$d);
        $data .= "role:$role:$list:\n";
     }
 
@@ -1135,11 +1137,11 @@ sub write_user_config {
        }
 
        foreach my $rolelist (sort keys %{$ra->{0}}) {
-           my $uglist = join (',', keys %{$ra->{0}->{$rolelist}});
+           my $uglist = join (',', sort keys %{$ra->{0}->{$rolelist}});
            $data .= "acl:0:$path:$uglist:$rolelist:\n";
        }
        foreach my $rolelist (sort keys %{$ra->{1}}) {
-           my $uglist = join (',', keys %{$ra->{1}->{$rolelist}});
+           my $uglist = join (',', sort keys %{$ra->{1}->{$rolelist}});
            $data .= "acl:1:$path:$uglist:$rolelist:\n";
        }
     }