diff options
author | Yorhel <git@yorhel.nl> | 2015-07-19 01:52:37 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2015-07-19 01:52:37 +0200 |
commit | f5e7a629a85a3abda0bfe7ee81b8612409377056 (patch) | |
tree | 744dd088a0329e64400eec78196cb9373adc877f /lib | |
parent | a575477eb7c755dc6facfe6a01abc2f8cbc9d73e (diff) |
Remove reliance on Referer header for /[vr]+/list modifications
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/Handler/ULists.pm | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm index bab30be6..92383e4e 100644 --- a/lib/VNDB/Handler/ULists.pm +++ b/lib/VNDB/Handler/ULists.pm @@ -65,14 +65,15 @@ sub vnlist_e { return if !$self->authCheckCode; my $f = $self->formValidate( - { get => 'e', enum => [ -1, @{$self->{vnlist_status}} ] } + { get => 'e', enum => [ -1, @{$self->{vnlist_status}} ] }, + { get => 'ref', required => 0, default => "/v$id" } ); return $self->resNotFound if $f->{_err}; $self->dbVNListDel($uid, $id) if $f->{e} == -1; $self->dbVNListAdd($uid, $id, $f->{e}) if $f->{e} != -1; - $self->resRedirect('/v'.$id, 'temp'); + $self->resRedirect($f->{ref}, 'temp'); } @@ -93,7 +94,8 @@ sub rlist_e { return if !$self->authCheckCode; my $f = $self->formValidate( - { get => 'e', required => 1, enum => [ -1, @{$self->{rlist_status}} ] } + { get => 'e', required => 1, enum => [ -1, @{$self->{rlist_status}} ] }, + { get => 'ref', required => 0, default => "/r$rid" } ); return $self->resNotFound if $f->{_err}; @@ -101,9 +103,7 @@ sub rlist_e { $self->dbRListAdd($uid, $rid, $f->{e}) if $f->{e} >= 0; if($id) { - my $b = $self->reqBaseURI(); - (my $ref = $self->reqHeader('Referer')||"/r$id") =~ s/^\Q$b//; - $self->resRedirect($ref, 'temp'); + $self->resRedirect($f->{ref}, 'temp'); } else { # doesn't really matter what we return, as long as it's XML $self->resHeader('Content-type' => 'text/xml'); |