5
0
mirror of git://git.proxmox.com/git/pve-access-control.git synced 2025-01-20 14:03:43 +03:00

rpcenv: improve user/token intersection

this could return undef for the propagation flag instead of 1/0, leading
to confusing displays of permission trees. all the actual checks using
the returned hash check for definedness anyway, so the actual
privileges checked and the displayed ones were not identical.

fixes: 7e8bcaa754432f084e53d9daf13c653a8777d88b
"roles()/permissions(): also return propagate flag"

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2022-01-21 11:23:36 +01:00
parent 92f571d9ff
commit e8a0cee47b

View File

@ -82,7 +82,8 @@ my $compile_acl_path = sub {
if ($username && $username ne 'root@pam') {
# intersect user and token permissions
my $user_privs = $cache->{$username}->{privs}->{$path};
$privs = { map { $_ => $user_privs->{$_} && $privs->{$_} } keys %$privs };
my $filtered_privs = [ grep { $user_privs->{$_} } keys %$privs ];
$privs = { map { $_ => $user_privs->{$_} && $privs->{$_} } @$filtered_privs };
}
$data->{privs}->{$path} = $privs;