back port registration from mojo
[spider.git] / cmd / show / registered.pl
1 #
2 # show/registered
3 #
4 # show all registered users 
5 #
6 # Copyright (c) 2001 Dirk Koopman G1TLH
7 #
8 #
9 #
10
11 my ($self, $line) = @_;
12 return (1, $self->msg('e5')) unless $self->priv >= 9;
13
14 my @out;
15 my @val;
16
17 use DB_File;
18
19 if ($line) {
20         $line =~ s/[^\w\-\/]+//g;
21         $line = "\U\Q$line";
22 }
23
24 my %call = ();
25 $call{$_} = 1 for split /\s+/, $line;
26 delete $call{'ALL'};
27
28 my ($action, $count, $key, $data) = (0,0,0,0);
29 unless (keys %call) {
30         for ($action = DXUser::R_FIRST, $count = 0; !$DXUser::dbm->seq($key, $data, $action); $action = DXUser::R_NEXT) {
31                 if ($data =~ m{registered}) {
32                         $call{$key} = 1;       # possible candidate
33                 }
34         }
35 }
36
37 foreach $key (sort keys %call) {
38         my $u = DXUser::get_current($key);
39         if ($u && defined (my $r = $u->registered)) {
40                 push @val, "${key}($r)";
41                 ++$count;
42         }
43         
44 }
45
46 my @l;
47 push @out, "Registration is " . ($main::reqreg ? "Required" :  "NOT Required");
48 foreach my $call (@val) {
49         if (@l >= 5) {
50                 push @out, sprintf "%-12s %-12s %-12s %-12s %-12s", @l;
51                 @l = ();
52         }
53         push @l, $call;
54 }
55 if (@l) {
56         push @l, "" while @l < 5;
57         push @out, sprintf "%-12s %-12s %-12s %-12s %-12s", @l;
58 }
59
60 push @out, $self->msg('rec', $count);
61 return (1, @out);
62
63