X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=blobdiff_plain;f=PVE%2FRPCEnvironment.pm;h=7532e9eca0245dd76f11d75dcd3c9c85081c840f;hp=a4ea2ef7ec7432725a38c0d830dbdd64fbf07b00;hb=5bb4e06a6440c8b67e67e14de9e42ba17a966b23;hpb=09d270580b09668432292e959dff2b4afb70bf74 diff --git a/PVE/RPCEnvironment.pm b/PVE/RPCEnvironment.pm index a4ea2ef..7532e9e 100644 --- a/PVE/RPCEnvironment.pm +++ b/PVE/RPCEnvironment.pm @@ -424,11 +424,11 @@ sub exec_api2_perm_check { return 1; } elsif ($test eq 'userid-param') { my ($userid, undef, $realm) = PVE::AccessControl::verify_username($param->{userid}); - return if !$self->check_user_exist($userid, $noerr); my ($t, $subtest) = @$check; die "missing parameters" if !$subtest; if ($subtest eq 'self') { - return 1 if $username eq 'userid'; + return 0 if !$self->check_user_exist($userid, $noerr); + return 1 if $username eq $userid; return 0 if $noerr; raise_perm_exc(); } elsif ($subtest eq 'Realm.AllocateUser') { @@ -820,14 +820,14 @@ sub check_worker { # STDOUT,STDERR are redirected to the filename returned by upid_decode # NOTE: we simulate running in foreground if ($self->{type} eq 'cli') sub fork_worker { - my ($self, $dtype, $id, $user, $function) = @_; + my ($self, $dtype, $id, $user, $function, $background) = @_; $dtype = 'unknown' if !defined ($dtype); $id = '' if !defined ($id); $user = 'root@pve' if !defined ($user); - my $sync = $self->{type} eq 'cli' ? 1 : 0; + my $sync = ($self->{type} eq 'cli' && !$background) ? 1 : 0; local $SIG{INT} = local $SIG{QUIT} =