summaryrefslogtreecommitdiff
path: root/lib
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 /lib
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
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/VNDB/Users.pm14
-rw-r--r--lib/global.pl10
3 files changed, 17 insertions, 11 deletions
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',