added registration
[spider.git] / cmd / set / register.pl
diff --git a/cmd/set/register.pl b/cmd/set/register.pl
new file mode 100644 (file)
index 0000000..dc4a794
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# register a user
+#
+# Copyright (c) 2001 Dirk Koopman G1TLH
+#
+# $Id$
+#
+my ($self, $line) = @_;
+my @args = split /\s+/, $line;
+my $call;
+# my $priv = shift @args;
+my @out;
+my $user;
+my $ref;
+
+if ($self->priv < 9) {
+       Log('DXCommand', $self->call . " attempted to register @args");
+       return (1, $self->msg('e5'));
+}
+return (1, $self->msg('reginac')) unless $main::reqreq;
+
+foreach $call (@args) {
+       $call = uc $call;
+       unless ($self->remotecmd) {
+               if ($ref = DXUser->get_current($call)) {
+                       $ref->registered(1);
+                       $ref->put();
+                       push @out, $self->msg("reg", $call);
+               } else {
+                       $ref = DXUser->new($call);
+                       $ref->registered(1);
+                       $ref->put();
+                       push @out, $self->msg("regc", $call);
+               }
+               my $dxchan = DXChannel->get($call);
+               $dxchan->registered(1) if $dxchan;
+               Log('DXCommand', $self->call . " registered $call");
+       } else {
+               Log('DXCommand', $self->call . " attempted to register $call remotely");
+               push @out, $self->msg('sorry');
+       }
+}
+return (1, @out);