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.',