]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
ids.cgi: Add section for additional provider actions.
authorStefan Schantl <stefan.schantl@ipfire.org>
Fri, 2 Apr 2021 08:47:55 +0000 (10:47 +0200)
committerStefan Schantl <stefan.schantl@ipfire.org>
Sun, 19 Dec 2021 12:23:43 +0000 (13:23 +0100)
This section only will be displayed when an existing provider will be
edited and allows to reset a provider back to it's defaults or to force
a ruleset update.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
html/cgi-bin/ids.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl

index 9eb87273bd46f065f9fda4ba9aa47b4efce2fa31..e702e8d2ef1d0b117bcf2ae5b162f05533918a53 100644 (file)
@@ -1647,8 +1647,6 @@ print <<END
 END
 ;
 
-       &Header::openbox('100%', 'center', $Lang::tr{'ids provider settings'});
-
        # Check if an existing provider should be edited.
        if($cgiparams{'PROVIDERS'} eq "$Lang::tr{'edit'}") {
                # Check if autoupdate is enabled for this provider.
@@ -1656,11 +1654,17 @@ END
                        # Set the checkbox to be checked.
                        $checked{'ENABLE_AUTOUPDATE'} = "checked='checked'";
                }
+
+               # Display section to force an rules update and to reset the provider.
+               &show_additional_provider_actions();
+
        } elsif ($cgiparams{'PROVIDERS'} eq "$Lang::tr{'ids add provider'}") {
                # Set the autoupdate to true as default.
                $checked{'ENABLE_AUTOUPDATE'} = "checked='checked'";
        }
 
+       &Header::openbox('100%', 'center', $Lang::tr{'ids provider settings'});
+
 print <<END
        <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                <table width='100%' border='0'>
@@ -1763,6 +1767,46 @@ END
        &Header::closebox();
 }
 
+#
+## Function to show the area where additional provider actions can be done.
+#
+sub show_additional_provider_actions() {
+       my $disabled;
+       my %used_providers = ();
+
+       # Read-in providers settings file.
+       &General::readhasharray("$IDS::providers_settings_file", \%used_providers);
+
+       # Assign variable for provider handle.
+       my $provider = "$used_providers{$cgiparams{'ID'}}[0]";
+
+       # Call function to get the path and name for the given providers
+       # oinkmaster modified sids file.
+       my $provider_modified_sids_file = &IDS::get_oinkmaster_provider_modified_sids_file($provider);
+
+       # Disable the reset provider button if no provider modified sids file exists.
+       unless (-f $provider_modified_sids_file) {
+               $disabled = "disabled";
+       }
+
+       &Header::openbox('100%', 'center', "");
+       print <<END
+               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                       <table width='100%' border="0">
+                               <tr>
+                                       <td align='center'>
+                                               <input type='hidden' name='PROVIDER' value='$provider'>
+                                               <input type='submit' name='PROVIDERS' value='$Lang::tr{'ids reset provider'}' $disabled>
+                                               <input type='submit' name='PROVIDERS' value='$Lang::tr{'ids force ruleset update'}'>
+                                       </td>
+                               </tr>
+                       </table>
+               </form>                 
+END
+;
+       &Header::closebox();
+}
+
 #
 ## A function to display a notice, to lock the webpage and
 ## tell the user which action currently will be performed.
index c2e661ac56580f51c9a38d5ea8653327ea4125a4..72efbba37952590a57cec7e9a9b3329362a3156d 100644 (file)
 'ids add provider' => 'Provider hinzufügen',
 'ids apply' => 'Übernehmen',
 'ids apply ruleset changes' => 'Regeländerungen werden übernommen. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
+'ids autoupdates' => 'Automatische Updates',
 'ids automatic rules update' => 'Automatische Regelaktualisierung',
 'ids customize ruleset' => 'Regelset anpassen',
 'ids download new ruleset' => 'Das neue Regelsatz wird heruntergeladen und entpackt. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
 'ids enable' => 'Einbruchsverhinderungssystem aktivieren',
 'ids enable automatic updates' => 'Automatische Updates aktivieren',
+'ids force ruleset update' => 'Regelset jetzt aktualisieren',
 'ids hide' => 'Verstecken',
 'ids ignored hosts' => 'Ausnahmeliste',
 'ids log hits' => 'Gesamtanzahl der Regeltreffer für',
 'ids oinkcode required' => 'Für den ausgewählten Regelsatz wird ein Abonnement oder ein Oinkcode benötigt',
 'ids provider' => 'Regelset-Anbieter',
 'ids provider settings' => 'Regelset-Anbieter-Einstellungen',
+'ids reset provider' => 'Providereinstellungen zurücksetzen',
 'ids rules update' => 'Regelsatz',
 'ids ruleset autoupdate in progress' => 'Der Regelsatz wird gerade aktualisiert. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
 'ids ruleset settings' => 'Regelsatzeinstellungen',
index 38ffcfbe2bd5bcbb032baaa6c5b66d98adbba150..59496b195e05b85b9d12d03ec5a638a1f649d886 100644 (file)
 'ids download new ruleset' => 'Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...',
 'ids enable' => 'Enable Intrusion Prevention System',
 'ids enable automatic updates' => 'Enable automatic updates',
+'ids force ruleset update' => 'Force ruleset update',
 'ids hide' => 'Hide',
 'ids ignored hosts' => 'Whitelisted Hosts',
 'ids log hits' => 'Total of number of activated rules for',
 'ids subscription code required' => 'The selected ruleset requires a subscription code',
 'ids provider' => 'Provider',
 'ids provider settings' => 'Provider settings',
+'ids reset provider' => 'Reset provider',
 'ids rules update' => 'Ruleset',
 'ids ruleset autoupdate in progress' => 'Ruleset update in progress. Please wait until all operations have completed successfully...',
 'ids ruleset settings' => 'Ruleset Settings',