Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
6 / 6
RoleHierarchyHelper
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
6 / 6
 getTopLevelRole
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
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;
    }
}