Neos\Flow\Security\Policy\PolicyService::initializePrivilegeTargets PHP Method

initializePrivilegeTargets() protected method

Initialized all configured privilege targets from the policy definitions
protected initializePrivilegeTargets ( ) : void
return void
    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;
            }
        }
    }