diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/DB/Users.pm | 5 | ||||
-rw-r--r-- | lib/VNDB/Handler/Misc.pm | 14 |
2 files changed, 13 insertions, 6 deletions
diff --git a/lib/VNDB/DB/Users.pm b/lib/VNDB/DB/Users.pm index 90a371a8..ec8d707b 100644 --- a/lib/VNDB/DB/Users.pm +++ b/lib/VNDB/DB/Users.pm @@ -13,7 +13,7 @@ our @EXPORT = qw| |; -# %options->{ username passwd mail session uid ip registered search results page what sort reverse } +# %options->{ username passwd mail session uid ip registered search results page what sort reverse notperm } # what: notifycount stats extended prefs hide_list # sort: username registered votes changes tags sub dbUserGet { @@ -50,6 +50,8 @@ sub dbUserGet { 'username ILIKE ?' => "%$o{search}%") : (), $o{session} ? ( q|s.token = decode(?, 'hex')| => unpack 'H*', $o{session} ) : (), + $o{notperm} ? ( + 'perm & ~(?::smallint) > 0' => $o{notperm} ) : (), ); my @select = ( @@ -77,6 +79,7 @@ sub dbUserGet { ); my $order = sprintf { + id => 'u.id %s', username => 'u.username %s', registered => 'u.registered %s', votes => 'up.value NULLS FIRST, u.c_votes %s', diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index 7505028a..fc82c4f0 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -315,11 +315,15 @@ sub docpage { close $F; $ii; }e; - s{^:TOP5CONTRIB:$}{ - my $l = $self->dbUserGet(results => 6, sort => 'changes', reverse => 1); - '<dl>'.join('', map $_->{id} == 1 ? () : - sprintf('<dt><a href="/u%d">%s</a></dt><dd>%d</dd>', $_->{id}, $_->{username}, $_->{c_changes}), - @$l).'</dl>'; + s{^:MODERATORS:$}{ + my $l = $self->dbUserGet(results => 100, sort => 'id', notperm => $self->{default_perm}, what => 'extended'); + my $admin = 0; + $admin += $_ for values %{$self->{permissions}}; + '<dl>'.join('', map { + my $u = $_; + my $p = $u->{perm} >= $admin ? 'admin' : join ', ', sort map +($u->{perm} &~ $self->{default_perm}) & $self->{permissions}{$_} ? $_ : (), keys %{$self->{permissions}}; + $p ? sprintf('<dt><a href="/u%d">%s</a></dt><dd>%s</dd>', $_->{id}, $_->{username}, $p) : () + } @$l).'</dl>'; }e; s{^:SKINCONTRIB:$}{ my %users; |