Programming Language PHP

Namespace Oro\Component\DependencyInjection

Class ExtendedContainerBuilder

Method/Function setExtensionConfig

Total Examples 7

7 code examples of PHP Oro\Component\DependencyInjection\ExtendedContainerBuilder::setExtensionConfig extracted from open source projects

Was this example useful?
0
                                                    /**
     * Moves the specified firewall configuration to the latest position.
     */
    public static function makeFirewallLatest(ExtendedContainerBuilder $container, string $firewallName): void
    {
        $securityConfig = $container->getExtensionConfig('security');
        if (!isset($securityConfig[0]['firewalls'][$firewallName])) {
            return;
        }

        $mainFirewall = $securityConfig[0]['firewalls'][$firewallName];
        unset($securityConfig[0]['firewalls'][$firewallName]);
        $securityConfig[0]['firewalls'][$firewallName] = $mainFirewall;

        $container->setExtensionConfig('security', $securityConfig);
    }
                                            
Was this example useful?
0
                                                    private function configureSecurityFirewalls(ExtendedContainerBuilder $container): void
    {
        if (!$container->hasParameter('web_backend_prefix')) {
            return;
        }

        $backendPrefix = $container->getParameter('web_backend_prefix');
        if (!$backendPrefix) {
            return;
        }

        $updatedConfigs = [];
        $configs = $container->getExtensionConfig('security');
        foreach ($configs as $config) {
            if (isset($config['firewalls']['main']['oauth']['resource_owners'])) {
                $oauthResourceOwners = $config['firewalls']['main']['oauth']['resource_owners'];
                foreach ($oauthResourceOwners as $name => $path) {
                    $oauthResourceOwners[$name] = $backendPrefix . $path;
                }
                $config['firewalls']['main']['oauth']['resource_owners'] = $oauthResourceOwners;
            }
            $updatedConfigs[] = $config;
        }
        $container->setExtensionConfig('security', $updatedConfigs);
    }
                                            
Was this example useful?
0
                                                    private function configureImagine(ExtendedContainerBuilder $container): void
    {
        $configs = $this->ensureImagineDefaultConfigSet($container->getExtensionConfig('liip_imagine'));

        /**
         * add empty config for "default" loader and resolver to each config item to avoid misconfiguration
         * @see \Liip\ImagineBundle\DependencyInjection\Configuration::getConfigTreeBuilder
         */
        foreach ($configs as $i => $config) {
            if (!isset($config['loaders']['default'])) {
                $configs[$i]['loaders']['default'] = [];
            }
            if (!isset($config['resolvers']['default'])) {
                $configs[$i]['resolvers']['default'] = [];
            }
        }

        $container->setExtensionConfig('liip_imagine', $configs);
    }
                                            
Was this example useful?
0
                                                    private function reconfigureLoginFirewalls(ExtendedContainerBuilder $container): void
    {
        $securityConfigs = $container->getExtensionConfig('security');
        $firewalls = $securityConfigs[0]['firewalls'];

        // enable basic authorization for test env
        if ('test' === $container->getParameter('kernel.environment')) {
            $firewalls['oauth2_authorization_authenticate']['organization-http-basic'] = [
                'realm' => 'AccountUser REST Area',
            ];
        }

        if (class_exists('Oro\Bundle\CustomerBundle\OroCustomerBundle')) {
            // move backend firewalls
            foreach (['oauth2_authorization_login', 'oauth2_authorization_authenticate'] as $firewallName) {
                $pattern = $firewalls[$firewallName]['pattern'];
                $firewalls[$firewallName]['pattern'] = str_replace(
                    '^/',
                    '^%web_backend_prefix%/',
                    $pattern
                );
            }

            // add frontend firewalls
            $frontendFirewalls = Yaml::parseFile(__DIR__ . '/../Resources/config/frontend_oauth_firewalls.yml');
            $firewalls = array_merge($frontendFirewalls, $firewalls);

            // enable basic authorization for test env
            if ('test' === $container->getParameter('kernel.environment')) {
                $firewalls['oauth2_frontend_authorization_authenticate']['organization-http-basic'] = [
                    'realm' => 'AccountUser REST Area',
                ];
            }
        }

        $securityConfigs[0]['firewalls'] = $firewalls;
        $container->setExtensionConfig('security', $securityConfigs);
    }
                                            
Was this example useful?
0
                                                    private function configureSecurityFirewalls(ExtendedContainerBuilder $container): void
    {
        $oauthFirewalls = [];
        $configs = $container->getExtensionConfig($this->getAlias());
        foreach ($configs as $config) {
            if (!empty($config['resource_server']['oauth_firewalls'])
                && is_array($config['resource_server']['oauth_firewalls'])
            ) {
                $oauthFirewalls[] = $config['resource_server']['oauth_firewalls'];
            }
        }
        $oauthFirewalls = array_unique(array_merge(...$oauthFirewalls));

        $securityConfigs = $container->getExtensionConfig('security');
        foreach ($oauthFirewalls as $firewallName) {
            if (!empty($securityConfigs[0]['firewalls'][$firewallName])) {
                $config = [];
                if (!empty($securityConfigs[0]['firewalls'][$firewallName]['anonymous_customer_user'])) {
                    $config['anonymous_customer_user'] = true;
                }

                $securityConfigs[0]['firewalls'][$firewallName]['oauth2'] = $config;
            }
        }
        $container->setExtensionConfig('security', $securityConfigs);
    }
                                            
Was this example useful?
0
                                                    private function modifyFosRestConfig(ExtendedContainerBuilder $container): void
    {
        $configs = $container->getExtensionConfig('fos_rest');
        $oldRestApiPattern = '^/api/rest';
        $restApiPatternPlaceholder = '%' . OroApiExtension::REST_API_PATTERN_PARAMETER_NAME . '%';
        foreach ($configs as $configKey => $config) {
            if (!isset($config['format_listener']['rules']) || !\is_array($config['format_listener']['rules'])) {
                continue;
            }
            $newRules = [];
            foreach ($config['format_listener']['rules'] as $rule) {
                if (empty($rule['path'])) {
                    continue;
                }
                if ($rule['path'] === $oldRestApiPattern) {
                    $backendRule = $rule;
                    $backendRule['path'] = sprintf('^/%s/api/rest', $this->getBackendPrefix($container));
                    $newRules[] = $backendRule;
                } elseif ($rule['path'] === $restApiPatternPlaceholder) {
                    $backendRule = $rule;
                    $backendRule['path'] = $this->getBackendApiPattern($container);
                    $newRules[] = $backendRule;
                }
            }
            if ($newRules) {
                $configs[$configKey]['format_listener']['rules'] = array_merge(
                    $newRules,
                    $config['format_listener']['rules']
                );
            }
        }

        $container->setExtensionConfig('fos_rest', $configs);
    }
                                            
Was this example useful?
0
                                                    private function modifySecurityConfig(ExtendedContainerBuilder $container): void
    {
        $configs = $container->getExtensionConfig('security');
        $restApiPatternPlaceholder = '%' . OroApiExtension::REST_API_PATTERN_PARAMETER_NAME . '%';
        foreach ($configs as $configKey => $config) {
            if (isset($config['firewalls']) && \is_array($config['firewalls'])) {
                foreach ($config['firewalls'] as $key => $firewall) {
                    if (!empty($firewall['pattern'])
                        && $firewall['pattern'] === $restApiPatternPlaceholder
                        && !str_starts_with($key, 'frontend_')
                    ) {
                        // add backend prefix to the pattern of the backend REST API firewall
                        $configs[$configKey]['firewalls'][$key]['pattern'] = $this->getBackendApiPattern($container);
                    }
                }
            }
        }
        $container->setExtensionConfig('security', $configs);
    }
                                            
ExtendedContainerBuilder's Other Methods