From a9de16e13ba4b2270794e2b1aef4f710fa143cbf Mon Sep 17 00:00:00 2001 From: yorhel Date: Sun, 13 Jul 2008 11:08:09 +0000 Subject: 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 --- lib/ChangeLog | 4 +++- lib/VNDB/Users.pm | 14 +++++++++----- lib/global.pl | 10 +++++----- 3 files changed, 17 insertions(+), 11 deletions(-) (limited to 'lib') 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', -- cgit v1.2.3