From 2feb8020941a82bfb4ac68890f6ced0e5b3c4a15 Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sat, 28 Jan 2023 12:16:40 +0100 Subject: [PATCH] validate existence of language in admin-templates Signed-off-by: Michael Kaufmann --- admin_templates.php | 6 ++++++ lng/de.lng.php | 1 + lng/en.lng.php | 1 + 3 files changed, 8 insertions(+) diff --git a/admin_templates.php b/admin_templates.php index 1f6e7a6c4..a8cc334ef 100644 --- a/admin_templates.php +++ b/admin_templates.php @@ -253,6 +253,9 @@ if (isset($_POST['prepare']) && $_POST['prepare'] == 'prepare') { // email templates $language = htmlentities(Validate::validate($_POST['language'], 'language', '/^[^\r\n\0"\']+$/', 'nolanguageselect')); + if (!array_key_exists($language, $languages)) { + Response::standardError('templatelanguageinvalid'); + } $template = Validate::validate($_POST['template'], 'template'); $result_stmt = Database::prepare(" @@ -288,6 +291,9 @@ } elseif (isset($_POST['send']) && $_POST['send'] == 'send' && !isset($_POST['filesend'])) { // email templates $language = htmlentities(Validate::validate($_POST['language'], 'language', '/^[^\r\n\0"\']+$/', 'nolanguageselect')); + if (!array_key_exists($language, $languages)) { + Response::standardError('templatelanguageinvalid'); + } $template = Validate::validate($_POST['template'], 'template'); $subject = Validate::validate($_POST['subject'], 'subject', '/^[^\r\n\0]+$/', 'nosubjectcreate'); $mailbody = Validate::validate($_POST['mailbody'], 'mailbody', '/^[^\0]+$/', 'nomailbodycreate'); diff --git a/lng/de.lng.php b/lng/de.lng.php index 25282a0d4..49c205504 100644 --- a/lng/de.lng.php +++ b/lng/de.lng.php @@ -773,6 +773,7 @@ 'destinationiswrong' => 'Die Weiterleitungsadresse "%s" enthält ungültige Zeichen oder ist nicht vollständig.', 'backupfoldercannotbedocroot' => 'Der Ordner für Backups darf nicht das Heimatverzeichnis sein, wählen Sie einen Ordner unterhalb des Heimatverzeichnisses, z.B. /backups', 'templatelanguagecombodefined' => 'Die gewählte Kombination aus Sprache und Vorlage ist bereits definiert.', + 'templatelanguageinvalid' => 'Die gewählte Sprache existiert nicht', 'ipstillhasdomains' => 'Die IP/Port-Kombination, die Sie löschen wollen, ist noch bei einer oder mehreren Domains eingetragen. Bitte ändern Sie die Domains vorher auf eine andere IP/Port-Kombination, um diese löschen zu können.', 'cantdeletedefaultip' => 'Sie können die Standard-IP/Port-Kombination für Reseller nicht löschen. Bitte setzen Sie eine andere IP/Port-Kombination als Standard, um diese löschen zu können.', 'cantdeletesystemip' => 'Sie können die letzte System-IP-Adresse nicht löschen. Entweder legen Sie eine neue IP/Port-Kombination an oder Sie ändern die System-IP-Adresse.', diff --git a/lng/en.lng.php b/lng/en.lng.php index 776dcddf1..815144698 100644 --- a/lng/en.lng.php +++ b/lng/en.lng.php @@ -839,6 +839,7 @@ 'destinationiswrong' => 'The forwarder %s contains invalid character(s) or is incomplete.', 'backupfoldercannotbedocroot' => 'The folder for backups cannot be your homedir, please chose a folder within your homedir, e.g. /backups', 'templatelanguagecombodefined' => 'The selected language/template combination has already been defined.', + 'templatelanguageinvalid' => 'The selected language does not exist', 'ipstillhasdomains' => 'The IP/Port combination you want to delete still has domains assigned to it, please reassign those to other IP/Port combinations before deleting this IP/Port combination.', 'cantdeletedefaultip' => 'You cannot delete the default IP/Port combination, please make another IP/Port combination default for before deleting this IP/Port combination.', 'cantdeletesystemip' => 'You cannot delete the last system IP, either create a new IP/Port combination for the system IP or change the system IP.',