diff options
Diffstat (limited to 'lib/VNDB/Handler/Users.pm')
-rw-r--r-- | lib/VNDB/Handler/Users.pm | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index 044c72b2..75ddb547 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -3,12 +3,12 @@ package VNDB::Handler::Users; use strict; use warnings; -use YAWF ':html', 'xml_escape'; +use TUWF ':html', 'xml_escape'; use VNDB::Func; use POSIX 'floor'; -YAWF::register( +TUWF::register( qr{u([1-9]\d*)} => \&userpage, qr{u/login} => \&login, qr{u([1-9]\d*)/logout} => \&logout, @@ -28,7 +28,7 @@ sub userpage { my($self, $uid) = @_; my $u = $self->dbUserGet(uid => $uid, what => 'stats hide_list')->[0]; - return 404 if !$u->{id}; + return $self->resNotFound if !$u->{id}; my $votes = $u->{c_votes} && $self->dbVoteStats(uid => $uid); @@ -113,8 +113,8 @@ sub userpage { } end; end; - end; - end; + end 'table'; + end 'div'; if(!$u->{hide_list} && $votes) { div class => 'mainbox'; @@ -142,8 +142,8 @@ sub login { my $frm; if($self->reqMethod eq 'POST') { $frm = $self->formValidate( - { name => 'usrname', required => 1, minlength => 2, maxlength => 15 }, - { name => 'usrpass', required => 1, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { post => 'usrname', required => 1, minlength => 2, maxlength => 15 }, + { post => 'usrpass', required => 1, minlength => 4, maxlength => 64, template => 'asciiprint' }, ); (my $ref = $self->reqHeader('Referer')||'/') =~ s/^\Q$self->{url}//; @@ -166,7 +166,7 @@ sub login { sub logout { my $self = shift; my $uid = shift; - return 404 if !$self->authInfo->{id} || $self->authInfo->{id} != $uid; + return $self->resNotFound if !$self->authInfo->{id} || $self->authInfo->{id} != $uid; $self->authLogout; } @@ -180,7 +180,7 @@ sub newpass { if($self->reqMethod eq 'POST') { return if !$self->authCheckCode; $frm = $self->formValidate( - { name => 'mail', required => 1, template => 'mail' }, + { post => 'mail', required => 1, template => 'mail' }, ); if(!$frm->{_err}) { $u = $self->dbUserGet(mail => $frm->{mail})->[0]; @@ -238,12 +238,12 @@ sub register { if($self->reqMethod eq 'POST') { return if !$self->authCheckCode; $frm = $self->formValidate( - { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, - { name => 'mail', template => 'mail' }, - { name => 'usrpass', minlength => 4, maxlength => 64, template => 'asciiprint' }, - { name => 'usrpass2', minlength => 4, maxlength => 64, template => 'asciiprint' }, - { name => 'type', regex => [ qr/^[1-3]$/ ] }, - { name => 'answer', template => 'int' }, + { post => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, + { post => 'mail', template => 'mail' }, + { post => 'usrpass', minlength => 4, maxlength => 64, template => 'asciiprint' }, + { post => 'usrpass2', minlength => 4, maxlength => 64, template => 'asciiprint' }, + { post => 'type', regex => [ qr/^[1-3]$/ ] }, + { post => 'answer', template => 'int' }, ); my $num = $self->{stats}{[qw|vn releases producers|]->[ $frm->{type} - 1 ]}; push @{$frm->{_err}}, 'notanswer' if !$frm->{_err} && ($frm->{answer} > $num || $frm->{answer} < $num*0.995); @@ -292,7 +292,7 @@ sub edit { # fetch user info (cached if uid == loggedin uid) my $u = $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'extended prefs')->[0]; - return 404 if !$u->{id}; + return $self->resNotFound if !$u->{id}; # check POST data my $frm; @@ -300,17 +300,17 @@ 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 => 'ign_votes', required => 0, default => 0 }, + { post => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, + { post => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] }, + { post => '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 => '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 => '' }, + { post => 'mail', template => 'mail' }, + { post => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { post => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { post => 'hide_list', required => 0, default => 0, enum => [0,1] }, + { post => 'show_nsfw', required => 0, default => 0, enum => [0,1] }, + { post => 'skin', required => 0, default => '', enum => [ '', keys %{$self->{skins}} ] }, + { post => 'customcss', required => 0, maxlength => 2000, default => '' }, ); push @{$frm->{_err}}, 'passmatch' if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2}); @@ -338,7 +338,7 @@ sub edit { # create the page $self->htmlHeader(title => mt('_usere_title'), noindex => 1); $self->htmlMainTabs('u', $u, 'edit'); - if($self->reqParam('d')) { + if($self->reqGet('d')) { div class => 'mainbox'; h1 mt '_usere_saved_title'; div class => 'notice'; @@ -379,10 +379,10 @@ sub posts { # fetch user info (cached if uid == loggedin uid) my $u = $self->authInfo->{id} && $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'hide_list')->[0]; - return 404 if !$u->{id}; + return $self->resNotFound if !$u->{id}; my $f = $self->formValidate( - { name => 'p', required => 0, default => 1, template => 'int' } + { get => 'p', required => 0, default => 1, template => 'int' } ); my($posts, $np) = $self->dbPostGet(uid => $uid, hide => 1, what => 'thread', page => $f->{p}, sort => 'date', reverse => 1); @@ -436,7 +436,7 @@ sub delete { if(!$act) { my $code = $self->authGetCode("/u$uid/del/o"); my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0]; - return 404 if !$u->{id}; + return $self->resNotFound if !$u->{id}; $self->htmlHeader(title => 'Delete user', noindex => 1); $self->htmlMainTabs('u', $u, 'del'); div class => 'mainbox'; @@ -473,12 +473,12 @@ sub list { my($self, $char) = @_; my $f = $self->formValidate( - { name => 's', required => 0, default => 'username', enum => [ qw|username registered votes changes tags| ] }, - { name => 'o', required => 0, default => 'a', enum => [ 'a','d' ] }, - { name => 'p', required => 0, default => 1, template => 'int' }, - { name => 'q', required => 0, default => '', maxlength => 50 }, + { get => 's', required => 0, default => 'username', enum => [ qw|username registered votes changes tags| ] }, + { get => 'o', required => 0, default => 'a', enum => [ 'a','d' ] }, + { get => 'p', required => 0, default => 1, template => 'int' }, + { get => 'q', required => 0, default => '', maxlength => 50 }, ); - return 404 if $f->{_err}; + return $self->resNotFound if $f->{_err}; $self->htmlHeader(noindex => 1, title => mt '_ulist_title'); @@ -534,7 +534,7 @@ sub list { td class => 'tc5'; lit !$l->{c_tags} ? 0 : qq|<a href="/g/links?u=$l->{id}">$l->{c_tags}</a>|; end; - end; + end 'tr'; }, ); $self->htmlFooter; @@ -548,21 +548,20 @@ sub notifies { return $self->htmlDenied if !$u->{id} || $uid != $u->{id}; my $f = $self->formValidate( - { name => 'p', required => 0, default => 1, template => 'int' }, - { name => 'r', required => 0, default => 0, enum => [0,1] }, - + { get => 'p', required => 0, default => 1, template => 'int' }, + { get => 'r', required => 0, default => 0, enum => [0,1] }, ); - return 404 if $f->{_err}; + return $self->resNotFound if $f->{_err}; # changing the notification settings my $saved; - if($self->reqMethod() eq 'POST' && $self->reqParam('set')) { + if($self->reqMethod() eq 'POST' && $self->reqPost('set')) { return if !$self->authCheckCode; my $frm = $self->formValidate( - { name => 'notify_nodbedit', required => 0, default => 1, enum => [0,1] }, - { name => 'notify_announce', required => 0, default => 0, enum => [0,1] } + { post => 'notify_nodbedit', required => 0, default => 1, enum => [0,1] }, + { post => 'notify_announce', required => 0, default => 0, enum => [0,1] } ); - return 404 if $frm->{_err}; + return $self->resNotFound if $frm->{_err}; $self->authPref($_, $frm->{$_}) for ('notify_nodbedit', 'notify_announce'); $saved = 1; @@ -570,11 +569,11 @@ sub notifies { } elsif($self->reqMethod() eq 'POST') { return if !$self->authCheckCode; my $frm = $self->formValidate( - { name => 'notifysel', multi => 1, required => 0, template => 'int' }, - { name => 'markread', required => 0 }, - { name => 'remove', required => 0 } + { post => 'notifysel', multi => 1, required => 0, template => 'int' }, + { post => 'markread', required => 0 }, + { post => 'remove', required => 0 } ); - return 404 if $frm->{_err}; + return $self->resNotFound if $frm->{_err}; my @ids = grep $_, @{$frm->{notifysel}}; $self->dbNotifyMarkRead(@ids) if @ids && $frm->{markread}; $self->dbNotifyRemove(@ids) if @ids && $frm->{remove}; @@ -587,6 +586,7 @@ sub notifies { results => 25, what => 'titles', read => $f->{r} == 1 ? undef : 0, + reverse => $f->{r} == 1, ); $self->htmlHeader(title => mt('_usern_title'), noindex => 1); @@ -634,7 +634,7 @@ sub notifies { : 'item_edit'), sprintf('<i>%s</i>', xml_escape $l->{c_title}), sprintf('<i>%s</i>', xml_escape $l->{username}); end; - end; + end 'tr'; }, footer => sub { Tr; @@ -664,7 +664,7 @@ sub notifies { input type => 'submit', name => 'set', value => mt '_usern_set_submit'; end; end; - end; + end 'form'; $self->htmlFooter; } @@ -673,7 +673,7 @@ sub readnotify { my($self, $uid, $nid) = @_; return $self->htmlDenied if !$self->authInfo->{id} || $uid != $self->authInfo->{id}; my $n = $self->dbNotifyGet(uid => $uid, id => $nid)->[0]; - return 404 if !$n->{iid}; + return $self->resNotFound if !$n->{iid}; $self->dbNotifyMarkRead($n->{id}) if !$n->{read}; # NOTE: for t+.+ IDs, this will create a double redirect, which is rather awkward... $self->resRedirect("/$n->{ltype}$n->{iid}".($n->{subid}?".$n->{subid}":''), 'perm'); |