release 1.5
[spider.git] / cmd / set / privilege.pl
index 87be2aa89f054b8c1dee09447b998b5a4dca55d3..2513f85b82ee6721f83316e0a2ce8fee9c272f98 100644 (file)
@@ -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);