diff --git a/lib/Froxlor/Api/Commands/Cronjobs.php b/lib/Froxlor/Api/Commands/Cronjobs.php index 2584aef5..d9678763 100644 --- a/lib/Froxlor/Api/Commands/Cronjobs.php +++ b/lib/Froxlor/Api/Commands/Cronjobs.php @@ -32,6 +32,7 @@ use Froxlor\Cron\TaskId; use Froxlor\Database\Database; use Froxlor\FroxlorLogger; use Froxlor\System\Cronjob; +use Froxlor\UI\Response; use Froxlor\Validate\Validate; use PDO; @@ -41,6 +42,14 @@ use PDO; class Cronjobs extends ApiCommand implements ResourceEntity { + private array $allowed_intervals = [ + 'MINUTE', + 'HOUR', + 'DAY', + 'WEEK', + 'MONTH' + ]; + /** * You cannot add new cronjobs yet. */ @@ -118,6 +127,10 @@ class Cronjobs extends ApiCommand implements ResourceEntity $interval_value = Validate::validate($interval_value, 'interval_value', '/^([0-9]+)$/Di', 'stringisempty', [], true); $interval_interval = Validate::validate($interval_interval, 'interval_interval', '', '', [], true); + if (!in_array(strtoupper($interval_interval), $this->allowed_intervals)) { + Response::standardError('invalidcronjobintervalvalue', implode(", ", $this->allowed_intervals), true); + } + // put together interval value $interval = $interval_value . ' ' . strtoupper($interval_interval); diff --git a/lng/de.lng.php b/lng/de.lng.php index 49c20550..f5ebea66 100644 --- a/lng/de.lng.php +++ b/lng/de.lng.php @@ -920,6 +920,7 @@ return [ 'pathmustberelative' => 'Der Benutzer hat nicht die benötigten Berechtigungen, um Pfade außerhalb des Kunden-Heimatverzeichnisses anzugeben. Bitte einen relativen Pfad angeben (kein führendes /).', 'mysqlserverstillhasdbs' => 'Datenbank-Server kann für den Kunden nicht entfernt werden, da sich dort noch Datenbanken befinden.', 'domaincannotbeedited' => 'Keine Berechtigung, um die Domain %s zu bearbeiten', + 'invalidcronjobintervalvalue' => 'Cronjob Intervall muss einer der folgenden Werte sein: %s', ], 'extras' => [ 'description' => 'Hier können Sie zusätzliche Extras einrichten, wie zum Beispiel einen Verzeichnisschutz.
Die Änderungen sind erst nach einer kurzen Zeit wirksam.', diff --git a/lng/en.lng.php b/lng/en.lng.php index 81514469..69cdf753 100644 --- a/lng/en.lng.php +++ b/lng/en.lng.php @@ -989,6 +989,7 @@ return [ 'pathmustberelative' => 'The user does not have the permission to specify directories outside the customers home-directory. Please specify a relative path (no leading /).', 'mysqlserverstillhasdbs' => 'Cannot remove database server from customers allow-list as there are still databases on it.', 'domaincannotbeedited' => 'You are not permitted to edit the domain %s', + 'invalidcronjobintervalvalue' => 'Cronjob interval must be one of: %s', ], 'extras' => [ 'description' => 'Here you can add some extras, for example directory protection.
The system will need some time to apply the new settings after every change.',