Skip to content

Commit

Permalink
Fixing #5542 - More useful warnings to plugin developers
Browse files Browse the repository at this point in the history
When a form element does not include a 'value' column, provide a more helpful warning message
  • Loading branch information
TheWitness committed Oct 28, 2023
1 parent e9beac6 commit 8880b48
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Cacti CHANGELOG
-issue#5514: DS Stats issues warnings when the RRDfile has not been initialized
-issue#5527: Upgrade from 0.8.8 to 1.2.25 (latest) fails on db upgrade due to missing data source profile id
-issue#5534: When deleting a single Data Source the table data_debug is not purged
-issue#5542: When a form element does not include a 'value' column, provide a more helpful warning message

1.2.25
-security#GHSA-77rf-774j-6h3p: Protect against Insecure deserialization of filter data
Expand Down
28 changes: 23 additions & 5 deletions lib/html_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,22 @@ function draw_edit_form($array) {

foreach ($fields_array as $field_name => $field_array) {
if ($field_array['method'] == 'hidden') {
if (!isset($field_array['value'])) {
cacti_log("WARNING: Cacti Form field '$field_name' does not include a 'value' Column. Using default", false);
cacti_debug_backtrace('form_edit');
$field_array['value'] = $field_array['default'];
}

print '<div class="hidden formRow">';
form_hidden_box($field_name, $field_array['value'], ((isset($field_array['default'])) ? $field_array['default'] : ''), true);
print '</div>';
} elseif ($field_array['method'] == 'hidden_zero') {
if (!isset($field_array['value'])) {
cacti_log("WARNING: Cacti Form field '$field_name' does not include a 'value' Column. Using default", false);
cacti_debug_backtrace('form_edit');
$field_array['value'] = $field_array['default'];
}

print '<div class="hidden formRow">';
form_hidden_box($field_name, $field_array['value'], '0', true);
print '</div>';
Expand Down Expand Up @@ -83,6 +95,12 @@ function draw_edit_form($array) {
print "<div class='formFieldName'>";

if (isset($field_array['sub_checkbox'])) {
if (!isset($field_array['sub_checkbox']['value'])) {
cacti_log("WARNING: Cacti Form field '$field_name' does not include a sub_checkbox 'value' Column. Using default", false);
cacti_debug_backtrace('form_edit');
$field_array['sub_checkbox']['value'] = $field_array['default'];
}

form_checkbox($field_array['sub_checkbox']['name'],
$field_array['sub_checkbox']['value'],
'',
Expand Down Expand Up @@ -254,14 +272,14 @@ function draw_edit_control($field_name, &$field_array) {
}

if (cacti_sizeof($files)) {
foreach($files as $file) {
if (is_readable($dir . '/' . $file) && $file != '.' && $file != '..') {
if (!in_array($file, $field_array['exclusions'])) {
$array_files[basename($file)] = basename($file);
foreach($files as $file) {
if (is_readable($dir . '/' . $file) && $file != '.' && $file != '..') {
if (!in_array($file, $field_array['exclusions'])) {
$array_files[basename($file)] = basename($file);
}
}
}
}
}
}
}

Expand Down

0 comments on commit 8880b48

Please sign in to comment.