Neos\Flow\Core\Migrations\Version20141113121400::processRoles PHP Méthode

processRoles() public méthode

Replaces local role identifiers ("SomeRole") by their global representation ("Current.Package:SomeRole") and sets "parentRoles"
public processRoles ( array &$configuration ) : void
$configuration array
Résultat void
    public function processRoles(array &$configuration)
    {
        if (!isset($configuration['roles'])) {
            return;
        }
        $newRolesConfiguration = array();
        foreach ($configuration['roles'] as $roleIdentifier => $roleConfiguration) {
            $roleIdentifier = $this->expandRoleIdentifier($roleIdentifier);
            $newRolesConfiguration[$roleIdentifier] = array();
            if (!is_array($roleConfiguration) || $roleConfiguration === array()) {
                continue;
            }
            if (isset($roleConfiguration['privileges'])) {
                $newRolesConfiguration[$roleIdentifier] = $roleConfiguration;
                continue;
            }
            $newRolesConfiguration[$roleIdentifier]['parentRoles'] = array();
            foreach ($roleConfiguration as $parentRoleIdentifier) {
                if (strpos($parentRoleIdentifier, ':') === false) {
                    $parentRoleIdentifier = $this->expandRoleIdentifier($parentRoleIdentifier);
                }
                $newRolesConfiguration[$roleIdentifier]['parentRoles'][] = $parentRoleIdentifier;
            }
        }
        $configuration['roles'] = $newRolesConfiguration;
    }