summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabien Potencier <fabien.potencier@gmail.com>2016-09-12 11:14:50 -0700
committerFabien Potencier <fabien.potencier@gmail.com>2016-09-12 11:14:50 -0700
commit3c4059b0b58d3c54adee85da6594c46478de958c (patch)
treee0af1f552843852678fd0875edae649759dc7af3
parent8aa4ba6e5e458d0f1125a24bce133b15093ee281 (diff)
parentbd170760b502967a6b42f90fd8db57646683a345 (diff)
downloadsymfony-security-3c4059b0b58d3c54adee85da6594c46478de958c.zip
symfony-security-3c4059b0b58d3c54adee85da6594c46478de958c.tar.gz
symfony-security-3c4059b0b58d3c54adee85da6594c46478de958c.tar.bz2
Merge branch '2.7' into 2.8
* 2.7: [travis/appveyor] Wire simple-phpunit [Console] fixed PHP7 Errors are now handled and converted to Exceptions Fix #19721 bumped Symfony version to 2.7.19 updated VERSION for 2.7.18 update CONTRIBUTORS for 2.7.18 updated CHANGELOG for 2.7.18 [Security] Optimize RoleHierarchy's buildRoleMap method
-rw-r--r--Core/Role/RoleHierarchy.php12
1 files changed, 10 insertions, 2 deletions
diff --git a/Core/Role/RoleHierarchy.php b/Core/Role/RoleHierarchy.php
index 793007e..95e76ee 100644
--- a/Core/Role/RoleHierarchy.php
+++ b/Core/Role/RoleHierarchy.php
@@ -65,9 +65,17 @@ class RoleHierarchy implements RoleHierarchyInterface
}
$visited[] = $role;
- $this->map[$main] = array_unique(array_merge($this->map[$main], $this->hierarchy[$role]));
- $additionalRoles = array_merge($additionalRoles, array_diff($this->hierarchy[$role], $visited));
+
+ foreach ($this->hierarchy[$role] as $roleToAdd) {
+ $this->map[$main][] = $roleToAdd;
+ }
+
+ foreach (array_diff($this->hierarchy[$role], $visited) as $additionalRole) {
+ $additionalRoles[] = $additionalRole;
+ }
}
+
+ $this->map[$main] = array_unique($this->map[$main]);
}
}
}