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;
}