X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=blobdiff_plain;f=evade-mail-admin;h=0f81cc960b279dc605117a195da8ab89a1c1d26d;hb=HEAD;hp=930d7180d8ff3b2defe71e80c5e757b07666734a;hpb=eb4765c35ff727af0b87678930b5373912ad3af5;p=d.git diff --git a/evade-mail-admin b/evade-mail-admin index 930d718..0f81cc9 100755 --- a/evade-mail-admin +++ b/evade-mail-admin @@ -32,6 +32,7 @@ privileged actions list-user insert-exact donate + list-users enable-user|disable-user default generation method is alphanum END @@ -446,6 +447,30 @@ sub action_list_all { listq($q) } +sub action_list_users { + die unless $priv; + nomoreargs; + my $qo = $dbh->prepare("SELECT user, count(*) AS count FROM addrs". + " GROUP BY user ORDER BY user"); + my $qd = $dbh->prepare("SELECT 1 FROM disabled_users WHERE user = ?"); + my $qe = $dbh->prepare("SELECT count(*) FROM addrs". + " WHERE user = ? AND NOT redirect=''"); + $qo->execute(); + printf "# total inuse ena user\n" or die $!; + while (my $row = $qo->fetchrow_hashref) { + my $tu = $row->{user}; + $qd->execute($tu); + $qe->execute($tu); + my ($disabled) = $qd->fetchrow_array(); + my ($inuse) = $qe->fetchrow_array(); + printf "%6d %6d %s %s\n", + $row->{count}, + $inuse, $disabled ? '-' : 'y', + $tu + or die $!; + } +} + sub action_insert_exact { die unless $priv; my $row = { };