diff options
author | Fabien Potencier <fabien.potencier@gmail.com> | 2016-09-12 11:14:50 -0700 |
---|---|---|
committer | Fabien Potencier <fabien.potencier@gmail.com> | 2016-09-12 11:14:50 -0700 |
commit | 3c4059b0b58d3c54adee85da6594c46478de958c (patch) | |
tree | e0af1f552843852678fd0875edae649759dc7af3 /Core | |
parent | 8aa4ba6e5e458d0f1125a24bce133b15093ee281 (diff) | |
parent | bd170760b502967a6b42f90fd8db57646683a345 (diff) | |
download | symfony-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
Diffstat (limited to 'Core')
-rw-r--r-- | Core/Role/RoleHierarchy.php | 12 |
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]); } } } |