diff --git a/lib/private/Authentication/Login/SetUserTimezoneCommand.php b/lib/private/Authentication/Login/SetUserTimezoneCommand.php index b18851e61faeb..57859b032b693 100644 --- a/lib/private/Authentication/Login/SetUserTimezoneCommand.php +++ b/lib/private/Authentication/Login/SetUserTimezoneCommand.php @@ -43,7 +43,7 @@ public function __construct(IConfig $config, } public function process(LoginData $loginData): LoginResult { - if ($loginData->getTimeZoneOffset() !== '') { + if ($loginData->getTimeZoneOffset() !== '' && $this->isValidTimezone($loginData->getTimeZone())) { $this->config->setUserValue( $loginData->getUser()->getUID(), 'core', @@ -58,4 +58,8 @@ public function process(LoginData $loginData): LoginResult { return $this->processNextOrFinishSuccessfully($loginData); } + + private function isValidTimezone(?string $value): bool { + return $value && in_array($value, \DateTimeZone::listIdentifiers()); + } }