| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 100.00% | 1 / 1 |  | 100.00% | 1 / 1 | CRAP |  | 100.00% | 6 / 6 | 
| RoleHierarchyHelper |  | 100.00% | 1 / 1 |  | 100.00% | 1 / 1 | 3 |  | 100.00% | 6 / 6 | 
| getTopLevelRole |  | 100.00% | 1 / 1 | 3 |  | 100.00% | 6 / 6 | |||
| <?php | |
| /* | |
| * This file is part of the Incipio package. | |
| * | |
| * (c) Théo FIDRY <theo.fidry@gmail.com> | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ | |
| namespace FrontBundle\Utils; | |
| /** | |
| * Helper to manipulate Symfony's roles. | |
| * | |
| * @author Théo FIDRY <theo.fidry@gmail.com> | |
| */ | |
| class RoleHierarchyHelper | |
| { | |
| /** | |
| * @var array List of roles ordered in descending order of level access granted. | |
| */ | |
| public static $roles = [ | |
| 'ROLE_SUPER_ADMIN' => null, | |
| 'ROLE_ADMIN' => null, | |
| 'ROLE_USER' => null, | |
| ]; | |
| /** | |
| * Extract the top level role from a list of roles. | |
| * | |
| * @param array $roles List of roles. | |
| * | |
| * @return null|string | |
| */ | |
| public static function getTopLevelRole(array $roles) | |
| { | |
| $roles = array_flip(array_values($roles)); | |
| foreach (self::$roles as $topRole => $null) { | |
| if (isset($roles[$topRole])) { | |
| return $topRole; | |
| } | |
| } | |
| return; | |
| } | |
| } |