X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?p=spider.git;a=blobdiff_plain;f=cmd%2Fset%2Fprivilege.pl;h=2513f85b82ee6721f83316e0a2ce8fee9c272f98;hp=87be2aa89f054b8c1dee09447b998b5a4dca55d3;hb=b060a0a3ee72530aa3f10d453186a662b66d7efe;hpb=3d29b1a4d4aab997da2deff10470068601744530 diff --git a/cmd/set/privilege.pl b/cmd/set/privilege.pl index 87be2aa8..2513f85b 100644 --- a/cmd/set/privilege.pl +++ b/cmd/set/privilege.pl @@ -13,8 +13,7 @@ my $call; my $priv = shift @args; my @out; my $user; - -$DB::single = 1; +my $ref; return (0) if $self->priv < 9; @@ -23,14 +22,20 @@ if ($priv < 0 || $priv > 9) { } foreach $call (@args) { - $call = uc $call; - my $user = DXUser->get_current($call); - if ($user) { - $user->priv($priv); - $user->put(); - push @out, $self->msg('priv', $call); - } else { - push @out, $self->msg('e3', "Set Privilege", $call); - } + $call = uc $call; + if ($ref = DXChannel->get($call)) { + $ref->priv($priv); + $ref->user->priv($priv); + $ref->user->put(); + } + if (!$ref && ($user = DXUser->get($call))) { + $user->priv($priv); + $user->put(); + } + if ($ref || $user) { + push @out, $self->msg('priv', $call); + } else { + push @out, $self->msg('e3', "Set Privilege", $call); + } } return (1, @out);