From: Ian Jackson Date: Thu, 13 Feb 2014 19:05:01 +0000 (+0000) Subject: evade-mail-admin: new list-users action X-Git-Tag: A X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?p=d.git;a=commitdiff_plain evade-mail-admin: new list-users action --- 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 = { };