1
0
Fork 0

Merge pull request #2805 from xabbuh/issue-2626

Check the referenced package for a white list entry
pull/2812/head
Nils Adermann 2014-03-12 17:07:58 +01:00
commit 70a20ebcc1
2 changed files with 35 additions and 1 deletions

View File

@ -268,9 +268,18 @@ class Pool
$nameMatch = false; $nameMatch = false;
foreach ($candidates as $candidate) { 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 && ( if ($this->whitelist !== null && (
(is_array($candidate) && isset($candidate['id']) && !isset($this->whitelist[$candidate['id']])) || (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; continue;
} }

View File

@ -0,0 +1,25 @@
--TEST--
Ensure a replacer package deals with branch aliases
--COMPOSER--
{
"repositories": [
{
"type": "package",
"package": [
{ "name": "a/a", "version": "dev-master", "replace": {"c/c": "self.version" }, "extra": { "branch-alias": {"dev-master": "1.0.x-dev"} } },
{ "name": "b/b", "version": "1.0.0", "require": {"c/c": "1.*"} },
{ "name": "c/c", "version": "dev-master", "extra": { "branch-alias": {"dev-master": "1.0.x-dev"} } }
]
}
],
"require": {
"a/a": "dev-master",
"b/b": "1.*"
}
}
--RUN--
install
--EXPECT--
Installing a/a (dev-master)
Marking a/a (1.0.x-dev) as installed, alias of a/a (dev-master)
Installing b/b (1.0.0)