summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2011-08-21 09:55:41 +0200
committerYorhel <git@yorhel.nl>2011-08-21 09:55:41 +0200
commit2b128f87ea6900565c34b42cc1c01073323b59d9 (patch)
treeae0a62f8faaa16cb0badc0953996b88448d0bff4
parentdbaafc5722d55fe5a065b48576ec96373302006f (diff)
Bugfix: Keep image id on failed (vn|char)add + validate image id
-rw-r--r--ChangeLog1
-rw-r--r--data/lang.txt7
-rw-r--r--lib/VNDB/Handler/Chars.pm11
-rw-r--r--lib/VNDB/Handler/VNEdit.pm17
4 files changed, 27 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 38f9ed1f..180253c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,7 @@
- Bugfix: dbTraitGet() filtering would not always work correctly
- Bugfix: Don't allow duplicate trait names/aliasses within the same group
- Bugfix: Don't throw error when adding character to VN without releases
+ - Bugfix: Keep image id on failed (vn|char)add + validate image id
2.20 - 2011-05-01
- Added support for sponsored links on VN pages
diff --git a/data/lang.txt b/data/lang.txt
index b0ab4f74..b0041080 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -8709,6 +8709,13 @@ cs : Tuto e-mailovou adresu již někdo k registraci použil
hu : Valaki már regisztrált ezzel az email címmel
nl : Iemand heeft zich al geregistreerd met dat emailadres
+:_formerr_e_invalidimgid
+en : No image with that ID
+ru :
+cs :
+hu :
+nl : Geen plaatje met dat ID
+
:_formerr_e_noimage
en : Image must be in JPEG or PNG format
ru : Изображение должно быть в формате JPEG или PNG
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm
index 8edb6236..5e12aa03 100644
--- a/lib/VNDB/Handler/Chars.pm
+++ b/lib/VNDB/Handler/Chars.pm
@@ -296,7 +296,7 @@ sub edit {
push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{desc});
# handle image upload
- $frm->{image} = _uploadimage($self, $r, $frm);
+ $frm->{image} = _uploadimage($self, $frm);
# validate main character
if(!$frm->{_err} && $frm->{main}) {
@@ -424,8 +424,13 @@ sub edit {
sub _uploadimage {
- my($self, $c, $frm) = @_;
- return $c ? $frm->{image} : 0 if $frm->{_err} || !$self->reqPost('img');
+ my($self, $frm) = @_;
+
+ if($frm->{_err} || !$self->reqPost('img')) {
+ return 0 if !$frm->{image};
+ push @{$frm->{_err}}, 'invalidimgid' if !-s sprintf '%s/static/ch/%02d/%d.jpg', $VNDB::ROOT, $frm->{image}%100, $frm->{image};
+ return $frm->{image};
+ }
# perform some elementary checks
my $imgdata = $self->reqUploadRaw('img');
diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm
index d0848c09..10680f0e 100644
--- a/lib/VNDB/Handler/VNEdit.pm
+++ b/lib/VNDB/Handler/VNEdit.pm
@@ -60,7 +60,7 @@ sub edit {
push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{desc});
# handle image upload
- $frm->{image} = _uploadimage($self, $v, $frm);
+ $frm->{image} = _uploadimage($self, $frm);
if(!$frm->{_err}) {
# parse and re-sort fields that have multiple representations of the same information
@@ -120,8 +120,13 @@ sub edit {
sub _uploadimage {
- my($self, $v, $frm) = @_;
- return $v ? $frm->{image} : 0 if $frm->{_err} || !$self->reqPost('img');
+ my($self, $frm) = @_;
+
+ if($frm->{_err} || !$self->reqPost('img')) {
+ return 0 if !$frm->{image};
+ push @{$frm->{_err}}, 'invalidimgid' if !-s sprintf '%s/static/cv/%02d/%d.jpg', $VNDB::ROOT, $frm->{image}%100, $frm->{image};
+ return $frm->{image};
+ }
# perform some elementary checks
my $imgdata = $self->reqUploadRaw('img');
@@ -163,9 +168,9 @@ sub _form {
vn_img => [ mt('_vnedit_image'), [ static => nolabel => 1, content => sub {
div class => 'img';
- p mt '_vnedit_image_none' if !$v || !$v->{image};
- p mt '_vnedit_image_processing' if $v && $v->{image} < 0;
- img src => sprintf("%s/cv/%02d/%d.jpg", $self->{url_static}, $v->{image}%100, $v->{image}), alt => $v->{title} if $v && $v->{image} > 0;
+ p mt '_vnedit_image_none' if !$frm->{image};
+ p mt '_vnedit_image_processing' if $frm->{image} < 0;
+ img src => sprintf("%s/cv/%02d/%d.jpg", $self->{url_static}, $frm->{image}%100, $frm->{image}) if $frm->{image} > 0;
end;
div;