X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fset%2Fprivilege.pl;h=865819e7efcfb5c6232bd69ddd7eae163484990a;hb=ab811a0c902225075a9bd69749f65594079433a9;hp=2513f85b82ee6721f83316e0a2ce8fee9c272f98;hpb=b060a0a3ee72530aa3f10d453186a662b66d7efe;p=spider.git diff --git a/cmd/set/privilege.pl b/cmd/set/privilege.pl index 2513f85b..865819e7 100644 --- a/cmd/set/privilege.pl +++ b/cmd/set/privilege.pl @@ -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);