Просмотр исходного кода

for AliasPackages check that the aliased package is white listed so that version constraints of AliasPackages are taken into account when computing package provisions

Christian Flothmann 11 лет назад
Родитель
Сommit
0e9325da79
1 измененных файлов с 10 добавлено и 1 удалено
  1. 10 1
      src/Composer/DependencyResolver/Pool.php

+ 10 - 1
src/Composer/DependencyResolver/Pool.php

@@ -268,9 +268,18 @@ class Pool
         $nameMatch = false;
 
         foreach ($candidates as $candidate) {
+            $aliasOfCandidate = null;
+
+            // alias packages are not white listed, make sure that the package
+            // being aliased is white listed
+            if ($candidate instanceof AliasPackage) {
+                $aliasOfCandidate = $candidate->getAliasOf();
+            }
+
             if ($this->whitelist !== null && (
                 (is_array($candidate) && isset($candidate['id']) && !isset($this->whitelist[$candidate['id']])) ||
-                (is_object($candidate) && !isset($this->whitelist[$candidate->getId()]))
+                (is_object($candidate) && !($candidate instanceof AliasPackage) && !isset($this->whitelist[$candidate->getId()])) ||
+                (is_object($candidate) && $candidate instanceof AliasPackage && !isset($this->whitelist[$aliasOfCandidate->getId()]))
             )) {
                 continue;
             }