Neos\Flow\Core\Migrations\Version20151113161300::processRequestPatterns PHP Метод

processRequestPatterns() публичный Метод

Adjust TYPO3.Flow.security.authentication.providers..requestPatterns syntax
public processRequestPatterns ( array &$configuration ) : void
$configuration array
Результат void
    public function processRequestPatterns(array &$configuration)
    {
        if (!isset($configuration['TYPO3']['Flow']['security']['authentication']['providers'])) {
            return;
        }
        foreach ($configuration['TYPO3']['Flow']['security']['authentication']['providers'] as $providerName => &$providerOptions) {
            if (!isset($providerOptions['requestPatterns'])) {
                continue;
            }
            foreach ($providerOptions['requestPatterns'] as $requestPatternName => $requestPatternOptions) {
                // already converted?
                if (isset($requestPatternOptions['pattern'])) {
                    continue;
                }
                switch (strtolower($requestPatternName)) {
                    case 'controllerobjectname':
                        $requestPatternOptions = ['pattern' => 'ControllerObjectName', 'patternOptions' => ['controllerObjectNamePattern' => $requestPatternOptions]];
                        break;
                    case 'csrfprotection':
                        $requestPatternOptions = ['pattern' => 'CsrfProtection'];
                        break;
                    case 'host':
                        $requestPatternOptions = ['pattern' => 'Host', 'patternOptions' => ['hostPattern' => $requestPatternOptions]];
                        break;
                    case 'ip':
                        $requestPatternOptions = ['pattern' => 'Ip', 'patternOptions' => ['cidrPattern' => $requestPatternOptions]];
                        break;
                    case 'uri':
                        $requestPatternOptions = ['pattern' => 'Uri', 'patternOptions' => ['uriPattern' => $requestPatternOptions]];
                        break;
                    default:
                        $this->showWarning(sprintf('Could not automatically convert the syntax of the custom request pattern "%s". Please adjust it manually as described in the documentation.', $requestPatternName));
                        continue 2;
                }
                $patternIdentifier = $this->targetPackageData['packageKey'] . ':' . $this->getShortClassName($requestPatternName);
                $providerOptions['requestPatterns'][$patternIdentifier] = $requestPatternOptions;
                unset($providerOptions['requestPatterns'][$requestPatternName]);
                $this->showNote(sprintf('Adjusted configuration syntax of the "%s" request pattern.', $requestPatternName));
            }
        }
    }