diff options
author | Yorhel <git@yorhel.nl> | 2011-01-02 14:17:57 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2011-01-02 14:17:57 +0100 |
commit | b4e3c35620916852a6028ab5f6644382553408f9 (patch) | |
tree | 303248a812f6a7dc9c25bec0d8af5836c87fec3f /lib/VNDB/Handler/Users.pm | |
parent | 632df9599de8dbb25707b0bf8caea075c55cfa3f (diff) | |
parent | 98f4725013b6d7a65e1fd07f7f02785b12e8a9bd (diff) |
Merge branch 'beta'2.16
Conflicts:
ChangeLog
lib/VNDB/Handler/ULists.pm
Diffstat (limited to 'lib/VNDB/Handler/Users.pm')
-rw-r--r-- | lib/VNDB/Handler/Users.pm | 72 |
1 files changed, 33 insertions, 39 deletions
diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index 3e2a1aef..044c72b2 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -27,7 +27,7 @@ YAWF::register( sub userpage { my($self, $uid) = @_; - my $u = $self->dbUserGet(uid => $uid, what => 'stats')->[0]; + my $u = $self->dbUserGet(uid => $uid, what => 'stats hide_list')->[0]; return 404 if !$u->{id}; my $votes = $u->{c_votes} && $self->dbVoteStats(uid => $uid); @@ -69,7 +69,7 @@ sub userpage { Tr ++$i % 2 ? (class => 'odd') : (); td mt '_userpage_votes'; td; - if(!$u->{show_list}) { + if($u->{hide_list}) { txt mt '_userpage_hidden'; } elsif($votes) { my($total, $count) = (0, 0); @@ -99,7 +99,7 @@ sub userpage { Tr ++$i % 2 ? (class => 'odd') : (); td mt '_userpage_list'; - td !$u->{show_list} ? mt('_userpage_hidden') : + td $u->{hide_list} ? mt('_userpage_hidden') : mt('_userpage_list_item', $u->{releasecount}, $u->{vncount}); end; @@ -116,7 +116,7 @@ sub userpage { end; end; - if($u->{show_list} && $votes) { + if(!$u->{hide_list} && $votes) { div class => 'mainbox'; h1 mt '_userpage_votestats'; $self->htmlVoteStats(u => $u, $votes); @@ -291,7 +291,7 @@ sub edit { return $self->htmlDenied if !$self->authInfo->{id} || $self->authInfo->{id} != $uid && !$self->authCan('usermod'); # fetch user info (cached if uid == loggedin uid) - my $u = $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'extended')->[0]; + my $u = $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'extended prefs')->[0]; return 404 if !$u->{id}; # check POST data @@ -300,30 +300,27 @@ sub edit { return if !$self->authCheckCode; $frm = $self->formValidate( $self->authCan('usermod') ? ( - { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, - { name => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] }, + { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, + { name => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] }, { name => 'ign_votes', required => 0, default => 0 }, ) : (), - { name => 'mail', template => 'mail' }, - { name => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, - { name => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, - { name => 'flags_list', required => 0, default => 0 }, - { name => 'flags_nsfw', required => 0, default => 0 }, - { name => 'skin', enum => [ '', keys %{$self->{skins}} ], required => 0, default => '' }, - { name => 'customcss', required => 0, maxlength => 2000, default => '' }, + { name => 'mail', template => 'mail' }, + { name => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { name => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { name => 'hide_list', required => 0, default => 0, enum => [0,1] }, + { name => 'show_nsfw', required => 0, default => 0, enum => [0,1] }, + { name => 'skin', required => 0, default => '', enum => [ '', keys %{$self->{skins}} ] }, + { name => 'customcss', required => 0, maxlength => 2000, default => '' }, ); push @{$frm->{_err}}, 'passmatch' if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2}); if(!$frm->{_err}) { + $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss show_nsfw hide_list |); my %o; $o{username} = $frm->{usrname} if $frm->{usrname}; $o{rank} = $frm->{rank} if $frm->{rank}; $o{mail} = $frm->{mail}; - $o{skin} = $frm->{skin}; - $o{customcss} = $frm->{customcss}; ($o{passwd}, $o{salt}) = $self->authPreparePass($frm->{usrpass}) if $frm->{usrpass}; - $o{show_list} = $frm->{flags_list} ? 1 : 0; - $o{show_nsfw} = $frm->{flags_nsfw} ? 1 : 0; $o{ign_votes} = $frm->{ign_votes} ? 1 : 0 if $self->authCan('usermod'); $self->dbUserEdit($uid, %o); $self->dbSessionDel($uid) if $frm->{usrpass}; @@ -334,9 +331,8 @@ sub edit { # fill out default values $frm->{usrname} ||= $u->{username}; - $frm->{$_} ||= $u->{$_} for(qw|rank mail skin customcss|); - $frm->{flags_list} = $u->{show_list} if !defined $frm->{flags_list}; - $frm->{flags_nsfw} = $u->{show_nsfw} if !defined $frm->{flags_nsfw}; + $frm->{$_} ||= $u->{$_} for(qw|rank mail|); + $frm->{$_} //= $u->{prefs}{$_} for(qw|skin customcss show_nsfw hide_list|); $frm->{ign_votes} = $u->{ign_votes} if !defined $frm->{ign_votes}; # create the page @@ -368,8 +364,8 @@ sub edit { [ passwd => short => 'usrpass2', name => mt '_usere_confirm' ], [ part => title => mt '_usere_options' ], - [ check => short => 'flags_list', name => mt '_usere_flist', "/u$uid/list", "/u$uid/wish" ], - [ check => short => 'flags_nsfw', name => mt '_usere_fnsfw' ], + [ check => short => 'hide_list', name => mt '_usere_flist', "/u$uid/list", "/u$uid/votes", "/u$uid/wish" ], + [ check => short => 'show_nsfw', name => mt '_usere_fnsfw' ], [ select => short => 'skin', name => mt('_usere_skin'), width => 300, options => [ map [ $_ eq $self->{skin_default} ? '' : $_, $self->{skins}{$_}[0].($self->debug?" [$_]":'') ], sort { $self->{skins}{$a}[0] cmp $self->{skins}{$b}[0] } keys %{$self->{skins}} ] ], [ textarea => short => 'customcss', name => mt '_usere_css' ], @@ -382,7 +378,7 @@ sub posts { my($self, $uid) = @_; # fetch user info (cached if uid == loggedin uid) - my $u = $self->authInfo->{id} && $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid)->[0]; + my $u = $self->authInfo->{id} && $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'hide_list')->[0]; return 404 if !$u->{id}; my $f = $self->formValidate( @@ -439,7 +435,7 @@ sub delete { # confirm if(!$act) { my $code = $self->authGetCode("/u$uid/del/o"); - my $u = $self->dbUserGet(uid => $uid)->[0]; + my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0]; return 404 if !$u->{id}; $self->htmlHeader(title => 'Delete user', noindex => 1); $self->htmlMainTabs('u', $u, 'del'); @@ -500,6 +496,7 @@ sub list { my($list, $np) = $self->dbUserGet( sort => $f->{s}, reverse => $f->{o} eq 'd', + what => 'hide_list', $char ne 'all' ? ( firstchar => $char ) : (), results => 50, @@ -527,8 +524,8 @@ sub list { a href => '/u'.$l->{id}, $l->{username}; end; td class => 'tc2', $self->{l10n}->date($l->{registered}); - td class => 'tc3'.(!$l->{show_list} && $self->authCan('usermod') ? ' linethrough' : ''); - lit !$l->{show_list} && !$self->authCan('usermod') ? '-' : !$l->{c_votes} ? 0 : + td class => 'tc3'.($l->{hide_list} && $self->authCan('usermod') ? ' linethrough' : ''); + lit $l->{hide_list} && !$self->authCan('usermod') ? '-' : !$l->{c_votes} ? 0 : qq|<a href="/u$l->{id}/votes">$l->{c_votes}</a>|; end; td class => 'tc4'; @@ -546,9 +543,9 @@ sub list { sub notifies { my($self, $uid) = @_; - return $self->htmlDenied if !$self->authInfo->{id} || $uid != $self->authInfo->{id}; - my $u = $self->dbUserGet(uid => $uid)->[0]; + my $u = $self->authInfo; + return $self->htmlDenied if !$u->{id} || $uid != $u->{id}; my $f = $self->formValidate( { name => 'p', required => 0, default => 1, template => 'int' }, @@ -562,15 +559,11 @@ sub notifies { if($self->reqMethod() eq 'POST' && $self->reqParam('set')) { return if !$self->authCheckCode; my $frm = $self->formValidate( - { name => 'notify_dbedit', required => 0 }, - { name => 'notify_announce', required => 0 } + { name => 'notify_nodbedit', required => 0, default => 1, enum => [0,1] }, + { name => 'notify_announce', required => 0, default => 0, enum => [0,1] } ); return 404 if $frm->{_err}; - for ('notify_dbedit', 'notify_announce') { - $frm->{$_} = $frm->{$_} ? 1 : 0; - $self->authInfo->{$_} = $frm->{$_}; - } - $self->dbUserEdit($uid, %$frm); + $self->authPref($_, $frm->{$_}) for ('notify_nodbedit', 'notify_announce'); $saved = 1; # updating notifications @@ -661,9 +654,10 @@ sub notifies { h1 mt '_usern_set_title'; div class => 'notice', mt '_usern_set_saved' if $saved; p; - for('dbedit', 'announce') { - input type => 'checkbox', name => "notify_$_", id => "notify_$_", value => 1, - $self->authInfo->{"notify_$_"} ? (checked => 'checked') : (); + for('nodbedit', 'announce') { + my $def = $_ eq 'nodbedit'? 0 : 1; + input type => 'checkbox', name => "notify_$_", id => "notify_$_", value => $def, + ($self->authPref("notify_$_")||0) == $def ? (checked => 'checked') : (); label for => "notify_$_", ' '.mt("_usern_set_$_"); br; } |