Skip to content
Snippets Groups Projects
Commit 234ce5f9 authored by Reiter, Christoph's avatar Reiter, Christoph :snake:
Browse files

Inject a dbp_api.twig_globals parameter which the core bundle can use

We still depend on some keycloak vars in the api docs template, and I'm not sure
how to handle this in a separate bundle atm.
parent ade67aac
Branches
No related tags found
No related merge requests found
Pipeline #52181 passed
......@@ -7,10 +7,11 @@ namespace DBP\API\KeycloakBundle\DependencyInjection;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension;
class DbpKeycloakExtension extends ConfigurableExtension
class DbpKeycloakExtension extends ConfigurableExtension implements PrependExtensionInterface
{
public function loadInternal(array $mergedConfig, ContainerBuilder $container)
{
......@@ -25,7 +26,26 @@ class DbpKeycloakExtension extends ConfigurableExtension
$certCacheDef->addTag('cache.pool');
$definition = $container->getDefinition('DBP\API\KeycloakBundle\Keycloak\KeycloakBearerUserProvider');
$definition->addMethodCall('setConfig', [$mergedConfig['keycloak'] ?? []]);
$definition->addMethodCall('setConfig', [$mergedConfig]);
$definition->addMethodCall('setCertCache', [$certCacheDef]);
}
public function prepend(ContainerBuilder $container)
{
$config = $container->getExtensionConfig($this->getAlias())[0];
$this->extendArrayParameter($container, 'dbp_api.twig_globals', [
'keycloak_server_url' => $config['server_url'] ?? '',
'keycloak_realm' => $config['realm'] ?? '',
'keycloak_frontend_client_id' => $config['frontend_client_id'] ?? '',
]);
}
private function extendArrayParameter(ContainerBuilder $container, string $parameter, array $values)
{
if (!$container->hasParameter($parameter)) {
$container->setParameter($parameter, []);
}
$oldValues = $container->getParameter($parameter);
$container->setParameter($parameter, array_merge($oldValues, $values));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment