simplify filter_groups
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 23 Jan 2012 08:58:03 +0000 (09:58 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 23 Jan 2012 08:58:03 +0000 (09:58 +0100)
PVE/API2/AccessControl.pm
PVE/API2/User.pm
PVE/RPCEnvironment.pm

index 6136ae5..6046a8a 100644 (file)
@@ -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};
                }
index 2d38dd1..5cfb155 100644 (file)
@@ -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}}) {
index 16b8ba8..b5940de 100644 (file)
@@ -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};
            }
        }