X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=blobdiff_plain;f=PVE%2FRPCEnvironment.pm;h=14e6849cc411ec43f14b557e0be728532a053a2f;hp=06360f23ddc01fe01496a67e6eac0a52df06e671;hb=4fb3cc5841d7b7ba08d108182b19882b23a58fa3;hpb=c4a776a657f4d66bbd3eb9c310907731e5133a5b diff --git a/PVE/RPCEnvironment.pm b/PVE/RPCEnvironment.pm index 06360f2..14e6849 100644 --- a/PVE/RPCEnvironment.pm +++ b/PVE/RPCEnvironment.pm @@ -259,6 +259,29 @@ sub check_user_exist { return PVE::AccessControl::check_user_exist($cfg, $user, $noerr); } +sub check_pool_exist { + my ($self, $pool, $noerr) = @_; + + my $cfg = $self->{user_cfg}; + + return 1 if $cfg->{pools}->{$pool}; + + return undef if $noerr; + + raise_perm_exc("pool '$pool' does not exist"); +} + +sub check_vm_perm { + my ($self, $user, $vmid, $pool, $privs, $any, $noerr) = @_; + + my $cfg = $self->{user_cfg}; + + if ($pool) { + return if $self->check_full($user, "/pool/$pool", $privs, $any, 1); + } + return $self->check_full($user, "/vms/$vmid", $privs, $any, $noerr); +}; + sub is_group_member { my ($self, $group, $user) = @_;