diff options
Diffstat (limited to 'lib/VNDB/VNLists.pm')
-rw-r--r-- | lib/VNDB/VNLists.pm | 51 |
1 files changed, 5 insertions, 46 deletions
diff --git a/lib/VNDB/VNLists.pm b/lib/VNDB/VNLists.pm index f2ad5d50..a50df2e4 100644 --- a/lib/VNDB/VNLists.pm +++ b/lib/VNDB/VNLists.pm @@ -7,33 +7,7 @@ use Exporter 'import'; use vars ('$VERSION', '@EXPORT'); $VERSION = $VNDB::VERSION; -@EXPORT = qw| VNListMod VNMyList VNVote RListMod RList |; - - -sub VNListMod { - my $self = shift; - my $vid = shift; - - my $uid = $self->AuthInfo()->{id}; - return $self->ResDenied() if !$uid; - - my $f = $self->FormCheck( - { name => 's', required => 1, enum => [ -1..$#$VNDB::LSTAT ] }, - { name => 'c', required => 0, default => '', maxlength => 500 }, - ); - return $self->ResNotFound if $f->{_err}; - - if($f->{s} == -1) { - $self->DBDelVNList($uid, $vid); - } elsif($self->DBGetVNList(uid => $uid, vid => $vid)->[0]{vid}) { - $self->DBEditVNList(uid => $uid, status => $f->{s}, vid => [ $vid ], - $f->{s} == 6 ? ( comments => $f->{c} ) : ()); - } else { - $self->DBAddVNList($uid, $vid, $f->{s}, $f->{c}); - } - - $self->ResRedirect('/v'.$vid, 'temp'); -} +@EXPORT = qw| VNMyList VNVote RListMod RList |; sub VNMyList { @@ -41,7 +15,7 @@ sub VNMyList { my $user = shift; my $u = $self->DBGetUser(uid => $user)->[0]; - return $self->ResNotFound if !$user || !$u || (($self->AuthInfo->{id}||0) != $user && !($u->{flags} & $VNDB::UFLAGS->{list})); + return $self->ResNotFound if !$user || !$u || !$self->AuthInfo->{id} || $self->AuthInfo->{id} != $user; my $f = $self->FormCheck( { name => 's', required => 0, default => 'title', enum => [ qw|title date| ] }, @@ -52,24 +26,8 @@ sub VNMyList { return $self->ResNotFound if $f->{_err}; if($self->ReqMethod eq 'POST') { - my $frm = $self->FormCheck( - { name => 'vnlistchange', required => 1, enum => [ -2..$#$VNDB::LSTAT ] }, - { name => 'comments', required => 0, default => '', maxlength => 500 }, - { name => 'sel', required => 1, multi => 1 }, - ); - if(!$frm->{_err}) { - my @change = map { /^[0-9]+$/ ? $_ : () } @{$frm->{sel}}; - $self->DBDelVNList($user, @change) if @change && $frm->{vnlistchange} eq '-1'; - $self->DBEditVNList( - uid => $user, - vid => \@change, - $frm->{vnlistchange} eq '-2' ? ( - comments => $frm->{comments} - ) : ( - status => $frm->{vnlistchange} - ), - ) if @change && $frm->{vnlistchange} ne '-1'; - } + my $f = $self->FormCheck({ name => 'sel', required => 1, multi => 1, template => 'int' }); + $self->DBDelVNList($user, @{$f->{sel}}) if !$f->{_err}; } my $order = $f->{s} . ($f->{o} eq 'a' ? ' ASC' : ' DESC'); @@ -159,6 +117,7 @@ sub RList { return $self->ResNotFound if $f->{_err}; if($self->ReqMethod eq 'POST') { + return $self->ResDenied if $uid != $self->AuthInfo->{id}; my $frm = $self->FormCheck( { name => 'vnlistchange', required => 1, enum => [ 'd', 'r0'..('r'.$#$VNDB::RSTAT), 'v0'..('v'.$#$VNDB::VSTAT) ] }, { name => 'rsel', required => 1, multi => 1, template => 'int' }, |