Bug 15035: Anti-spam for opac-suggestions - FOLLOW-UP
authorMason James <mtj@kohaaloha.com>
Wed, 16 Sep 2015 01:56:23 +0000 (13:56 +1200)
committerLiz Rea <wizzyrea@gmail.com>
Thu, 10 Dec 2015 01:39:43 +0000 (14:39 +1300)
to test this patch...

1/ enable 'suggestion' and 'AnonSuggestions' sysprefs

2/ edit the koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt file,
    to reveal the hidden 'negcap' field

   replace line 87 opac-suggestions.tt, from...
     <li id="negcap" style="position: absolute; left: -2000px;">
   to ...
     <li id="negcap">

3/ attempt to add another suggestion, and populate the 'negcap' field
   adding the suggestion is supposed to fail, but actually succeeds!?  :/

4/ apply patch

5/ repeat step 3, suggestion attempt should fail as expected

modified:   opac-suggestions.pl

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Confirmed insertion with negcap before patch.
With negcap value suggestion fails silently
Without negcap suggestion is inserted
No errors

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 6b31947c3bb6517ecdc7d21440ba79895c270749)
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
(cherry picked from commit 49d2b2c84dbd85da2a2495ac3b81e450f4e522b4)
Signed-off-by: Liz Rea <wizzyrea@gmail.com>

opac/opac-suggestions.pl

index cbdada2..0dd71a8 100755 (executable)
@@ -34,7 +34,6 @@ use Koha::DateUtils qw( dt_from_string );
 my $input           = new CGI;
 my $op              = $input->param('op');
 my $suggestion      = $input->Vars;
-delete $suggestion->{negcap};
 my $negcaptcha      = $input->param('negcap');
 my $suggested_by_anyone = $input->param('suggested_by_anyone') || 0;
 
@@ -42,6 +41,10 @@ my $suggested_by_anyone = $input->param('suggested_by_anyone') || 0;
 if ($negcaptcha ) {
     print $input->redirect("/cgi-bin/koha/opac-suggestions.pl");
     exit;
+} else {
+    # don't pass 'negcap' column to DB, else DBI::Class will error
+    # DBIx::Class::Row::store_column(): No such column 'negcap' on Koha::Schema::Result::Suggestion at  Koha/C4/Suggestions.pm
+    delete $suggestion->{negcap};
 }
 
 #If suggestions are turned off we redirect to 404 error. This will also redirect guest suggestions