Change DXUser->get* to DXUser::get*
[spider.git] / cmd / set / privilege.pl
index 2513f85b82ee6721f83316e0a2ce8fee9c272f98..865819e7efcfb5c6232bd69ddd7eae163484990a 100644 (file)
@@ -5,7 +5,7 @@
 #
 # Copyright (c) 1998 Dirk Koopman G1TLH
 #
-# $Id$
+#
 #
 my ($self, $line) = @_;
 my @args = split /\s+/, $line;
@@ -15,27 +15,36 @@ my @out;
 my $user;
 my $ref;
 
-return (0) if $self->priv < 9;
+if ($self->priv < 9 || $self->remotecmd || $self->inscript) {
+       Log('DXCommand', $self->call . " attempted to set privilege $priv for @args");
+       return (1, $self->msg('e5'));
+}
 
 if ($priv < 0 || $priv > 9) {
-  return (0, $self->msg('e5')); 
+  return (1, $self->msg('e5')); 
 }
 
 foreach $call (@args) {
        $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);
+       unless ($self->remotecmd || $self->inscript) {
+               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);
+                       Log('DXCommand', "Privilege set to $priv on $call by " . $self->call);
+               } else {
+                       push @out, $self->msg('e3', "Set Privilege", $call);
+               }
        } else {
-               push @out, $self->msg('e3', "Set Privilege", $call);
+               push @out, $self->msg('sorry');
+               Log('DXCommand', $self->call . " attempted to set privilege $priv for $call remotely");
        }
 }
 return (1, @out);