mirror of
https://git.proxmox.com/git/pve-access-control
synced 2025-06-05 16:37:13 +00:00
simplify filter_groups
This commit is contained in:
parent
37d45debb1
commit
b9180ed235
@ -248,7 +248,7 @@ __PACKAGE__->register_method ({
|
||||
|
||||
my $privs = [ 'Sys.UserMod', 'Sys.UserAdd' ];
|
||||
if (!$rpcenv->check_any($authuser, "/access", $privs, 1)) {
|
||||
my $groups = $rpcenv->filter_groups($authuser, sub { return "/access/groups/" . shift; }, $privs, 1);
|
||||
my $groups = $rpcenv->filter_groups($authuser, $privs, 1);
|
||||
my $allowed_users = $rpcenv->group_member_join([keys %$groups]);
|
||||
raise_perm_exc() if !$allowed_users->{$userid};
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ __PACKAGE__->register_method ({
|
||||
my $privs = [ 'Sys.UserMod', 'Sys.UserAdd' ];
|
||||
|
||||
my $canUserMod = $rpcenv->check_any($authuser, "/access", $privs, 1);
|
||||
my $groups = $rpcenv->filter_groups($authuser, sub { return "/access/groups/" . shift; }, $privs, 1);
|
||||
my $groups = $rpcenv->filter_groups($authuser, $privs, 1);
|
||||
my $allowed_users = $rpcenv->group_member_join([keys %$groups]);
|
||||
|
||||
foreach my $user (keys %{$usercfg->{users}}) {
|
||||
|
@ -216,18 +216,19 @@ sub is_group_member {
|
||||
}
|
||||
|
||||
sub filter_groups {
|
||||
my ($self, $user, $getPath, $privs, $any) = @_;
|
||||
my ($self, $user, $privs, $any) = @_;
|
||||
|
||||
my $cfg = $self->{user_cfg};
|
||||
|
||||
my $groups = {};
|
||||
foreach my $group (keys %{$cfg->{groups}}) {
|
||||
my $path = "/access/groups/$group";
|
||||
if ($any) {
|
||||
if ($self->check_any($user, &$getPath($group), $privs, 1)) {
|
||||
if ($self->check_any($user, $path, $privs, 1)) {
|
||||
$groups->{$group} = $cfg->{groups}->{$group};
|
||||
}
|
||||
} else {
|
||||
if ($self->check($user, &$getPath($group), $privs, 1)) {
|
||||
if ($self->check($user, $path, $privs, 1)) {
|
||||
$groups->{$group} = $cfg->{groups}->{$group};
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user