protected function initializePrivilegeTargets()
{
if (!isset($this->policyConfiguration['privilegeTargets'])) {
return;
}
foreach ($this->policyConfiguration['privilegeTargets'] as $privilegeClassName => $privilegeTargetsConfiguration) {
foreach ($privilegeTargetsConfiguration as $privilegeTargetIdentifier => $privilegeTargetConfiguration) {
if (!isset($privilegeTargetConfiguration['matcher'])) {
throw new SecurityException(sprintf('No "matcher" configured for privilegeTarget "%s"', $privilegeTargetIdentifier), 1401795388);
}
$parameterDefinitions = [];
$privilegeParameterConfiguration = isset($privilegeTargetConfiguration['parameters']) ? $privilegeTargetConfiguration['parameters'] : [];
foreach ($privilegeParameterConfiguration as $parameterName => $parameterValue) {
if (!isset($privilegeTargetConfiguration['parameters'][$parameterName])) {
throw new SecurityException(sprintf('No parameter definition found for parameter "%s" in privilegeTarget "%s"', $parameterName, $privilegeTargetIdentifier), 1395869330);
}
if (!isset($privilegeTargetConfiguration['parameters'][$parameterName]['className'])) {
throw new SecurityException(sprintf('No "className" defined for parameter "%s" in privilegeTarget "%s"', $parameterName, $privilegeTargetIdentifier), 1396021782);
}
$parameterDefinitions[$parameterName] = new PrivilegeParameterDefinition($parameterName, $privilegeTargetConfiguration['parameters'][$parameterName]['className']);
}
$privilegeTarget = new PrivilegeTarget($privilegeTargetIdentifier, $privilegeClassName, $privilegeTargetConfiguration['matcher'], $parameterDefinitions);
$privilegeTarget->injectObjectManager($this->objectManager);
$this->privilegeTargets[$privilegeTargetIdentifier] = $privilegeTarget;
}
}
}