summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-07-13 11:08:09 +0000
committeryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-07-13 11:08:09 +0000
commita9de16e13ba4b2270794e2b1aef4f710fa143cbf (patch)
tree3a01a32c93deb8f3a4f40fae031b8ff4ef7ad176
parent2252e5a53eec2a23b202aa2e2468f10375d72ab0 (diff)
Admins can change someones username, Fixed the automatic relogin after changing password and Added lock indicator when browsing threads on a tag
git-svn-id: svn://vndb.org/vndb@65 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
-rw-r--r--data/tpl/ttag5
-rw-r--r--data/tpl/useredit1
-rw-r--r--data/tpl/userlist8
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/VNDB/Users.pm14
-rw-r--r--lib/global.pl10
6 files changed, 26 insertions, 16 deletions
diff --git a/data/tpl/ttag b/data/tpl/ttag
index 3495d319..6ddee459 100644
--- a/data/tpl/ttag
+++ b/data/tpl/ttag
@@ -33,7 +33,10 @@
</tr></thead>
[[ for (@{$d{t}}) { ]]-
<tr>
- <td class="tc1"><a href="/t[[= $_->{id} ]]" title="[[= join ', ', sort map $$_[1]?$$_[0].$$_[1]:$$_[0], @{$_->{tags}} ]]">[[: $_->{title} ]]</a></td>
+ <td class="tc1">
+ <a href="/t[[= $_->{id} ]]" title="[[= join ', ', sort map $$_[1]?$$_[0].$$_[1]:$$_[0], @{$_->{tags}} ]]">[[: $_->{title} ]]</a>
+ [[ if($_->{locked}) { ]]- <b>[locked]</b>[[ } ]]
+ </td>
<td class="tc2">[[= $_->{count}-1 ]]</td>
<td class="tc3"><a href="/u[[= $_->{uid} ]]">[[= $_->{username} ]]</a></td>
<td class="tc4"><a href="/u[[= $_->{luid} ]]">[[= $_->{lusername} ]]</a> @
diff --git a/data/tpl/useredit b/data/tpl/useredit
index 16bc8c44..0e152f80 100644
--- a/data/tpl/useredit
+++ b/data/tpl/useredit
@@ -26,6 +26,7 @@
$d{adm} ? (
{ type => 'sub', title => 'Admin', short => 'adm' },
+ { type => 'input', name => 'Username', short => 'username' },
{ type => 'select', name => 'Rank', short => 'rank', options => [
map { { name => $VNDB::VNDBopts{ranks}[0][0][$_], short => $_ } } 1..($#{$VNDB::VNDBopts{ranks}}-1) ] },
) : (),
diff --git a/data/tpl/userlist b/data/tpl/userlist
index 4fcb12c7..d83249e1 100644
--- a/data/tpl/userlist
+++ b/data/tpl/userlist
@@ -19,20 +19,20 @@
<table id="tul">
<thead><tr>
<td class="tc1">Username [[= sortbut($url, 'username') ]]</td>
-[[ if($p{Authuserlist}) { ]]-
+[[ if($p{Authusermod}) { ]]-
<td class="tc2">Mail [[= sortbut($url, 'mail') ]]</td>
<td class="tc3">Rank [[= sortbut($url, 'rank') ]]</td>[[ } ]]-
<td class="tc4">Registered [[= sortbut($url, 'registered') ]]</td>
<td class="tc5">VN list</td>
<td class="tc6">Votes</td>
<td class="tc7">Changes</td>
-[[ if($p{Authuseredit}) { ]]-
+[[ if($p{Authusermod}) { ]]-
<td class="tc8">&nbsp;</td>[[ } ]]-
</tr></thead>
[[ for (@{$d{users}}) { ]]-
<tr>
<td class="tc1"><a href="/u[[= $_->{id} ]]">[[: $_->{username} ]]</a></td>
-[[ if($p{Authuserlist}) { ]]-
+[[ if($p{Authusermod}) { ]]-
<td class="tc2">[[: $_->{mail} ]]</td>
<td class="tc3">[[: $VNDB::VNDBopts{ranks}[0][0][$_->{rank}] ]]</td>[[ } ]]-
<td class="tc4">[[= formatdate('%Y-%m-%d', $_->{registered}, 'wd') ]]</td>
@@ -45,7 +45,7 @@
<td class="tc7">[[ if($_->{changes}) { ]]
<a href="/u[[= $_->{id} ]]/hist" title="Recent changes by -[[: $_->{username} ]]">[[= $_->{changes} ]]</a>
[[ } else { ]]0[[ } ]]</td>
-[[ if($p{Authuseredit}) { ]]-
+[[ if($p{Authusermod}) { ]]-
<td class="tc8">( <a href="/u[[= $_->{id} ]]/edit">edit</a> )</td>[[ } ]]-
</tr>
[[ } ]]-
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 04691079..06f828a6 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -7,7 +7,9 @@ TODO:
+ Add a link for the hidden 'h' option at /hist
1.20 - ?
- - ?
+ - Admins can change someone's username
+ - Fixed the automatic relogin after changing password
+ - Added lock indicator when browsing threads on a tag
1.19 - 2008-07-08 (r62)
- Integrated discussion board
diff --git a/lib/VNDB/Users.pm b/lib/VNDB/Users.pm
index 4b4e65ef..318f6dbc 100644
--- a/lib/VNDB/Users.pm
+++ b/lib/VNDB/Users.pm
@@ -125,7 +125,7 @@ sub UsrEdit {
my $u = $self->AuthInfo();
return $self->ResDenied if !$u->{id};
my $adm = $u->{id} != $user;
- return $self->ResDenied if $adm && !$self->AuthCan('useredit');
+ return $self->ResDenied if $adm && !$self->AuthCan('usermod');
$u = $self->DBGetUser(uid => $user)->[0] if $adm;
return $self->ResNotFound if !$u->{id};
@@ -137,7 +137,10 @@ sub UsrEdit {
{ name => 'mail', required => 1, template => 'mail' },
{ name => 'pass1', required => 0, template => 'asciiprint' },
{ name => 'pass2', required => 0, template => 'asciiprint' },
- { name => 'rank', required => $adm, enum => [ '1'..($#{$self->{ranks}}-1) ] },
+ $adm ? (
+ { name => 'username',required => 1, template => 'pname', minlength => 2, maxlength => 15 },
+ { name => 'rank', required => 1, enum => [ '1'..($#{$self->{ranks}}-1) ] },
+ ) : (),
{ name => 'pvotes',required => 0 },
{ name => 'plist', required => 0 },
{ name => 'pign_nsfw', required => 0 },
@@ -149,16 +152,17 @@ sub UsrEdit {
if(!$frm->{_err}) {
my $pass = $frm->{pass1} ? md5_hex($frm->{pass1}) : '';
my %opts = (
- 'mail' => $frm->{mail},
+ username => $frm->{username}||undef,
+ rank => $frm->{rank}||undef,
+ mail => $frm->{mail},
);
$opts{passwd} = $pass if $pass;
- $opts{rank} = $frm->{rank} if $adm;
$opts{flags} = $frm->{pvotes} ? $VNDB::UFLAGS->{votes} : 0;
$opts{flags} += $VNDB::UFLAGS->{list} if $frm->{plist};
$opts{flags} += $VNDB::UFLAGS->{nsfw} if $frm->{pign_nsfw};
$self->DBUpdateUser($u->{id}, %opts);
return $adm ? $self->ResRedirect('/u'.$user.'/edit?d=1', 'post') :
- $pass ? $self->AuthLogin($user, $frm->{pass1}, 1, '/u'.$user.'/edit?d=1') :
+ $pass ? $self->AuthLogin($u->{username}, $frm->{pass1}, 1, '/u'.$user.'/edit?d=1') :
$self->ResRedirect('/u'.$user.'/edit?d=1', 'post');
}
}
diff --git a/lib/global.pl b/lib/global.pl
index abd46b62..6b637375 100644
--- a/lib/global.pl
+++ b/lib/global.pl
@@ -31,11 +31,11 @@ our %VNDBopts = (
},
ranks => [
[ [ qw| visitor loser user mod admin | ], [] ],
- {map{$_,1}qw| hist |}, # 0 - visitor (not logged in)
- {map{$_,1}qw| hist |}, # 1 - loser
- {map{$_,1}qw| hist board edit |}, # 2 - user
- {map{$_,1}qw| hist board boardmod edit mod lock del |}, # 3 - mod
- {map{$_,1}qw| hist board boardmod edit mod lock del userlist useredit |}, # 4 - admin
+ {map{$_,1}qw| hist |}, # 0 - visitor (not logged in)
+ {map{$_,1}qw| hist |}, # 1 - loser
+ {map{$_,1}qw| hist board edit |}, # 2 - user
+ {map{$_,1}qw| hist board boardmod edit mod lock del |}, # 3 - mod
+ {map{$_,1}qw| hist board boardmod edit mod lock del usermod |}, # 4 - admin
],
postsperpage => 25,
imgpath => '/www/vndb/static/cv',