From fb333ebd5bc1b98a9294520c913cb8a94c882465 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 16 Jan 2025 15:00:20 +0100 Subject: [PATCH] fix(desktop): Also require a desktop client version Signed-off-by: Joas Schilling --- lib/Middleware/CanUseTalkMiddleware.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/Middleware/CanUseTalkMiddleware.php b/lib/Middleware/CanUseTalkMiddleware.php index f9dcaf9eedc..613bc915c2d 100644 --- a/lib/Middleware/CanUseTalkMiddleware.php +++ b/lib/Middleware/CanUseTalkMiddleware.php @@ -34,6 +34,8 @@ class CanUseTalkMiddleware extends Middleware { public const TALK_DESKTOP_MIN_VERSION = '0.6.0'; public const TALK_DESKTOP_MIN_VERSION_RECORDING_CONSENT = '0.16.0'; + public const TALK_DESKTOP_MIN_VERSION_E2EE_CALLS = '1.1.0'; + public const TALK_ANDROID_MIN_VERSION = '15.0.0'; public const TALK_ANDROID_MIN_VERSION_RECORDING_CONSENT = '18.0.0'; public const TALK_ANDROID_MIN_VERSION_E2EE_CALLS = '22.0.0'; @@ -134,7 +136,9 @@ protected function throwIfUnsupportedClientVersion(string $client, string $userA $versionRegex = IRequest::USER_AGENT_TALK_DESKTOP; $minVersion = self::TALK_DESKTOP_MIN_VERSION; - if ($this->talkConfig->recordingConsentRequired()) { + if ($this->talkConfig->isCallEndToEndEncryptionEnabled()) { + $minVersion = self::TALK_DESKTOP_MIN_VERSION_E2EE_CALLS; + } elseif ($this->talkConfig->recordingConsentRequired()) { $minVersion = self::TALK_DESKTOP_MIN_VERSION_RECORDING_CONSENT; } } elseif ($client === 'android') { @@ -163,6 +167,10 @@ protected function throwIfUnsupportedClientVersion(string $client, string $userA if (isset($matches[1])) { $clientVersion = $matches[1]; + if (str_contains($clientVersion, '-')) { + // Claim pre-releases being compatible with the final releases + $clientVersion = substr($clientVersion, 0, strpos($clientVersion, '-')); + } // API requirement and safety net if (version_compare($clientVersion, $minVersion, '<')) {