From 0d970a777000696dd95f32f3408a229c72c60883 Mon Sep 17 00:00:00 2001
From: Nicole Cordes <typo3@cordes.co>
Date: Tue, 12 Nov 2013 23:33:50 +0100
Subject: [PATCH] [BUGFIX] Hide update icon for incompatible extensions

Currently the update icon in extension manager is displayed every time
a higher TER version of the extension exists. But the update fails if
the TYPO3 version isn't within the extension dependencies. This patch
adds the dependency check to the isUpdateAvailable function.

Resolves: #53576
Releases: 6.2
Change-Id: I109e779037f670ab205b43cbbbb1bc16954860e6
Reviewed-on: https://review.typo3.org/25348
Reviewed-by: Philipp Gampe
Reviewed-by: Marcin S?gol
Tested-by: Marcin S?gol
Reviewed-by: Oliver Klee
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
---
 .../extensionmanager/Classes/Utility/InstallUtility.php  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php b/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php
index ec4504b6a06b..8c31be80afcd 100644
--- a/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php
+++ b/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php
@@ -378,6 +378,7 @@ class InstallUtility implements \TYPO3\CMS\Core\SingletonInterface {
 	 * @return boolean
 	 */
 	public function isUpdateAvailable(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extensionData) {
+		$isUpdateAvailable = FALSE;
 		// Only check for update for TER extensions
 		$version = $extensionData->getIntegerVersion();
 		/** @var $highestTerVersionExtension \TYPO3\CMS\Extensionmanager\Domain\Model\Extension */
@@ -385,10 +386,14 @@ class InstallUtility implements \TYPO3\CMS\Core\SingletonInterface {
 		if ($highestTerVersionExtension instanceof \TYPO3\CMS\Extensionmanager\Domain\Model\Extension) {
 			$highestVersion = $highestTerVersionExtension->getIntegerVersion();
 			if ($highestVersion > $version) {
-				return TRUE;
+				try {
+					$this->dependencyUtility->buildExtensionDependenciesTree($highestTerVersionExtension);
+					$isUpdateAvailable = TRUE;
+				} catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
+				}
 			}
 		}
-		return FALSE;
+		return $isUpdateAvailable;
 	}
 
 	/**
-- 
GitLab