CRM-18156 don't false positive on security update available
authoreileenmcnaugton <eileen@fuzion.co.nz>
Mon, 7 Mar 2016 00:43:51 +0000 (13:43 +1300)
committereileenmcnaugton <eileen@fuzion.co.nz>
Mon, 7 Mar 2016 00:44:49 +0000 (13:44 +1300)
CRM/Utils/VersionCheck.php

index a7bc93aed8da3c46308b9e0b60c1fca91b6e3748..e7ecab9246680482a2bb0e412e8b8c0c296754bb 100644 (file)
@@ -179,12 +179,17 @@ class CRM_Utils_VersionCheck {
   public function isSecurityUpdateAvailable() {
     $thisVersion = $this->getReleaseInfo($this->localVersion);
     $localVersionDate = CRM_Utils_Array::value('date', $thisVersion, 0);
-    foreach ($this->versionInfo as $majorVersion) {
+    // If not defined we will get an e-notice. That seems OK....
+    $isLTS = $this->versionInfo[$this->localMajorVersion]['status'] === 'lts' ? TRUE : FALSE;
+
+    foreach ($this->versionInfo as $majorVersionNumber => $majorVersion) {
       foreach ($majorVersion['releases'] as $release) {
         if (!empty($release['security']) && $release['date'] > $localVersionDate
           && version_compare($this->localVersion, $release['version']) < 0
         ) {
-          if (!$this->ignoreDate || $this->ignoreDate < $release['date']) {
+          if ((!$this->ignoreDate || $this->ignoreDate < $release['date'])
+            && (!$isLTS || $majorVersionNumber === $this->localMajorVersion)
+          ) {
             return TRUE;
           }
         }