From a4eb3ee508804bc1c7c489ea252a9841139e38fb Mon Sep 17 00:00:00 2001
From: Daniel Kesselberg <mail@danielkesselberg.de>
Date: Tue, 25 Sep 2018 21:53:04 +0200
Subject: [PATCH] Validate email in occ command

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
---
 core/Command/Maintenance/Install.php | 4 ++++
 lib/private/Setup.php                | 7 +------
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/core/Command/Maintenance/Install.php b/core/Command/Maintenance/Install.php
index 3e6ee2a463f..39692e036ba 100644
--- a/core/Command/Maintenance/Install.php
+++ b/core/Command/Maintenance/Install.php
@@ -171,6 +171,10 @@ class Install extends Command {
 			$adminPassword = $helper->ask($input, $output, $question);
 		}
 
+		if ($adminEmail !== null && !filter_var($adminEmail, FILTER_VALIDATE_EMAIL)) {
+			throw new InvalidArgumentException('Invalid e-mail-address <' . $adminEmail . '> for <' . $adminLogin . '>.');
+		}
+
 		$options = [
 			'dbtype' => $db,
 			'dbuser' => $dbUser,
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index 9346edd8363..e9719705fcd 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -416,12 +416,7 @@ class Setup {
 
 			// Set email for admin
 			if (!empty($options['adminemail'])) {
-				$adminEmail = htmlspecialchars_decode($options['adminemail']);
-				if (filter_var($adminEmail, FILTER_VALIDATE_EMAIL)) {
-					$config->setUserValue($user->getUID(), 'settings', 'email', $adminEmail);
-				} else {
-					$error[] = "Invalid e-mail-address <$adminEmail> for <$username>.";
-				}
+				$config->setUserValue($user->getUID(), 'settings', 'email', $options['adminemail']);
 			}
 		}
 
-- 
GitLab