Bug 21605: Ensure EDI acct fields set to boolean val
authorColin Campbell <colin.campbell@ptfs-europe.com>
Fri, 26 Oct 2018 09:42:13 +0000 (10:42 +0100)
committerLucas Gass <lucas@bywatersolutions.com>
Thu, 10 Jan 2019 01:34:59 +0000 (01:34 +0000)
Validate the input to the fields indicating account
functionality. The only valid values are 1 and 0
non-integer (or integers other than 0/1) are invalid

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit c9c3fc4368ee9d37a45c48167d25d5cee511898b)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit ae409c2fb347f7605e20afb34c6e7fe6a04092bb)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

admin/edi_accounts.pl

index e6f8676..3eccb53 100755 (executable)
@@ -81,14 +81,17 @@ else {
             download_directory => scalar $input->param('download_directory'),
             san                => scalar $input->param('san'),
             transport          => scalar $input->param('transport'),
-            quotes_enabled     => defined $input->param('quotes_enabled'),
-            invoices_enabled   => defined $input->param('invoices_enabled'),
-            orders_enabled     => defined $input->param('orders_enabled'),
-            responses_enabled  => defined $input->param('responses_enabled'),
-            auto_orders        => defined $input->param('auto_orders'),
             id_code_qualifier  => scalar $input->param('id_code_qualifier'),
             plugin             => scalar $input->param('plugin'),
         };
+        # ensure all capability fields set to binary 0 or 1
+        foreach my $capability
+        (qw( quotes_enabled invoices_enabled orders_enabled responses_enabled auto_orders)) {
+            $fields->{$capability} = defined $input->param($capability);
+            if ($fields->{$capability} != 1) {
+                $fields->{$capability} = 0;
+            }
+        }
 
         if ($id) {
             $schema->resultset('VendorEdiAccount')->search(