]> dxcluster.org Git - spider.git/commitdiff
*** empty log message ***
authordjk <djk>
Thu, 3 Jun 1999 20:17:39 +0000 (20:17 +0000)
committerdjk <djk>
Thu, 3 Jun 1999 20:17:39 +0000 (20:17 +0000)
perl/DXUser_old.pm [deleted file]

diff --git a/perl/DXUser_old.pm b/perl/DXUser_old.pm
deleted file mode 100644 (file)
index 70b066d..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-#
-# DX cluster user routines
-#
-# Copyright (c) 1998 - Dirk Koopman G1TLH
-#
-# $Id$
-#
-
-package DXUser;
-
-require Exporter;
-@ISA = qw(Exporter);
-
-use MLDBM qw(DB_File);
-use Fcntl;
-use Carp;
-
-use strict;
-use vars qw(%u $dbm $filename %valid);
-
-%u = ();
-$dbm = undef;
-$filename = undef;
-
-# hash of valid elements and a simple prompt
-%valid = (
-                 call => '0,Callsign',
-                 alias => '0,Real Callsign',
-                 name => '0,Name',
-                 qth => '0,Home QTH',
-                 lat => '0,Latitude,slat',
-                 long => '0,Longitude,slong',
-                 qra => '0,Locator',
-                 email => '0,E-mail Address',
-                 priv => '9,Privilege Level',
-                 lastin => '0,Last Time in,cldatetime',
-                 passwd => '9,Password',
-                 addr => '0,Full Address',
-                 'sort' => '0,Type of User', # A - ak1a, U - User, S - spider cluster, B - BBS
-                 xpert => '0,Expert Status,yesno',
-                 bbs => '0,Home BBS',
-                 node => '0,Last Node',
-                 homenode => '0,Home Node',
-                 lockout => '9,Locked out?,yesno',     # won't let them in at all
-                 dxok => '9,DX Spots?,yesno', # accept his dx spots?
-                 annok => '9,Announces?,yesno', # accept his announces?
-                 reg => '0,Registered?,yesno', # is this user registered?
-                 lang => '0,Language',
-                 hmsgno => '0,Highest Msgno',
-                 group => '0,Access Group,parray',     # used to create a group of users/nodes for some purpose or other
-                 isolate => '9,Isolate network,yesno',
-                );
-
-no strict;
-sub AUTOLOAD
-{
-       my $self = shift;
-       my $name = $AUTOLOAD;
-  
-       return if $name =~ /::DESTROY$/;
-       $name =~ s/.*:://o;
-  
-       confess "Non-existant field '$AUTOLOAD'" if !$valid{$name};
-       if (@_) {
-               $self->{$name} = shift;
-               #       $self->put();
-       }
-       return $self->{$name};
-}
-
-#
-# initialise the system
-#
-sub init
-{
-       my ($pkg, $fn, $mode) = @_;
-  
-       confess "need a filename in User" if !$fn;
-       if ($mode) {
-               $dbm = tie (%u, MLDBM, $fn, O_CREAT|O_RDWR, 0666) or confess "can't open user file: $fn ($!)";
-       } else {
-               $dbm = tie (%u, MLDBM, $fn, O_RDONLY) or confess "can't open user file: $fn ($!)";
-       }
-       
-       $filename = $fn;
-}
-
-use strict;
-
-#
-# close the system
-#
-
-sub finish
-{
-       untie %u;
-}
-
-#
-# new - create a new user
-#
-
-sub new
-{
-       my $pkg = shift;
-       my $call = uc shift;
-       #  $call =~ s/-\d+$//o;
-  
-       confess "can't create existing call $call in User\n!" if $u{$call};
-
-       my $self = bless {}, $pkg;
-       $self->{call} = $call;
-       $self->{'sort'} = 'U';
-       $self->{dxok} = 1;
-       $self->{annok} = 1;
-       $self->{lang} = $main::lang;
-       $u{call} = $self;
-       return $self;
-}
-
-#
-# get - get an existing user - this seems to return a different reference everytime it is
-#       called - see below
-#
-
-sub get
-{
-       my $pkg = shift;
-       my $call = uc shift;
-       #  $call =~ s/-\d+$//o;       # strip ssid
-       return $u{$call};
-}
-
-#
-# get all callsigns in the database 
-#
-
-sub get_all_calls
-{
-       return (sort keys %u);
-}
-
-#
-# get an existing either from the channel (if there is one) or from the database
-#
-# It is important to note that if you have done a get (for the channel say) and you
-# want access or modify that you must use this call (and you must NOT use get's all
-# over the place willy nilly!)
-#
-
-sub get_current
-{
-       my $pkg = shift;
-       my $call = uc shift;
-       #  $call =~ s/-\d+$//o;       # strip ssid
-  
-       my $dxchan = DXChannel->get($call);
-       return $dxchan->user if $dxchan;
-       return $u{$call};
-}
-
-#
-# put - put a user
-#
-
-sub put
-{
-       my $self = shift;
-       my $call = $self->{call};
-       $u{$call} = $self;
-}
-
-# 
-# create a string from a user reference
-#
-sub encode
-{
-       my $self = shift;
-       my $out;
-       my $f;
-
-       $out = "bless( { ";
-       for $f (sort keys %$self) {
-               my $val = $$self{$f};
-           if (ref $val) {          # it's an array (we think)
-                       $out .= "'$f'=>[ ";
-                       foreach (@$val) {
-                               my $s = $_;
-                               $out .= "'$s',";
-                       }
-                       $out .= " ],";
-           } else {
-                       $val =~ s/'/\\'/og;
-                       $out .= "'$f'=>'$val',";
-               }
-       }
-       $out .= " }, 'DXUser')";
-       return $out;
-}
-
-#
-# create a hash from a string
-#
-sub decode
-{
-       my $s = shift;
-       my $ref;
-       $s = '$ref = ' . $s;
-       eval $s;
-       confess $@ if $@;
-       return $ref;
-}
-
-#
-# del - delete a user
-#
-
-sub del
-{
-       my $self = shift;
-       my $call = $self->{call};
-       delete $u{$call};
-}
-
-#
-# close - close down a user
-#
-
-sub close
-{
-       my $self = shift;
-       $self->{lastin} = time;
-       $self->put();
-}
-
-#
-# return a list of valid elements 
-# 
-
-sub fields
-{
-       return keys(%valid);
-}
-
-#
-# group handling
-#
-
-# add one or more groups
-sub add_group
-{
-       my $self = shift;
-       my $ref = $self->{group} || [ 'local' ];
-       $self->{group} = $ref if !$self->{group};
-       push @$ref, @_ if @_;
-}
-
-# remove one or more groups
-sub del_group
-{
-       my $self = shift;
-       my $ref = $self->{group} || [ 'local' ];
-       my @in = @_;
-       
-       $self->{group} = $ref if !$self->{group};
-       
-       @$ref = map { my $a = $_; return (grep { $_ eq $a } @in) ? () : $a } @$ref;
-}
-
-# does this thing contain all the groups listed?
-sub union
-{
-       my $self = shift;
-       my $ref = $self->{group};
-       my $n;
-       
-       return 0 if !$ref || @_ == 0;
-       return 1 if @$ref == 0 && @_ == 0;
-       for ($n = 0; $n < @_; ) {
-               for (@$ref) {
-                       my $a = $_;
-                       $n++ if grep $_ eq $a, @_; 
-               }
-       }
-       return $n >= @_;
-}
-
-# simplified group test just for one group
-sub in_group
-{
-       my $self = shift;
-       my $s = shift;
-       my $ref = $self->{group};
-       
-       return 0 if !$ref;
-       return grep $_ eq $s, $ref;
-}
-
-# set up a default group (only happens for them's that connect direct)
-sub new_group
-{
-       my $self = shift;
-       $self->{group} = [ 'local' ];
-}
-
-#
-# return a prompt for a field
-#
-
-sub field_prompt
-{ 
-       my ($self, $ele) = @_;
-       return $valid{$ele};
-}
-
-# some variable accessors
-sub sort
-{
-       my $self = shift;
-       @_ ? $self->{'sort'} = shift : $self->{'sort'} ;
-}
-1;
-__END__