Datenbankupgrades: unbekannte Control-Felder als Fehler werten
[kivitendo-erp.git] / SL / DBUpgrade2.pm
index 82bd27f..fea2168 100644 (file)
@@ -98,12 +98,17 @@ sub parse_dbupdate_controls {
       _control_error($form, $file_name, sprintf($locale->text("Missing 'description' field."))) ;
     }
 
+    delete @{$control}{qw(depth applied)};
+
+    my @unknown_keys = grep { !m{^ (?: depends | description | file | ignore | locales | may_fail | priority | tag ) $}x } keys %{ $control };
+    if (@unknown_keys) {
+      _control_error($form, $file_name, sprintf($locale->text("Unknown control fields: #1", join(' ', sort({ lc $a cmp lc $b } @unknown_keys)))));
+    }
+
     $control->{"priority"}  *= 1;
     $control->{"priority"} ||= 1000;
     $control->{"file"}       = $file;
 
-    delete @{$control}{qw(depth applied)};
-
     $all_controls{$control->{"tag"}} = $control;
 
     close(IN);