public function prepend(ContainerBuilder $container)
{
$preview = $container->hasParameter('sulu.preview') ? $container->getParameter('sulu.preview') : false;
$context = $container->getParameter('sulu.context');
$configs = $container->getExtensionConfig($this->getAlias());
$parameterBag = $container->getParameterBag();
$configs = $parameterBag->resolveValue($configs);
$config = $this->processConfiguration(new Configuration(), $configs);
// FIXME: The entire foreach can be removed when upgrading to DoctrinePhpcrBundle 1.3
// see https://github.com/doctrine/DoctrinePHPCRBundle/issues/178
foreach ($config['sessions'] as &$session) {
if (isset($session['backend'])) {
$session['backend']['check_login_on_server'] = false;
}
}
$liveSession = 'live';
if (isset($config['live_session'])) {
$liveSession = $config['live_session'];
}
$defaultSession = 'default';
if (!$preview && isset($config['default_session'])) {
$defaultSession = $config['default_session'];
}
if (!$preview && $context === SuluKernel::CONTEXT_WEBSITE) {
$defaultSession = $liveSession;
}
$container->prependExtensionConfig('sulu_document_manager', ['default_session' => $defaultSession, 'live_session' => $liveSession]);
if ($container->hasExtension('doctrine_phpcr')) {
$doctrinePhpcrConfig = ['odm' => [], 'session' => ['sessions' => $config['sessions']]];
$doctrinePhpcrConfig['session']['default_session'] = $defaultSession;
$container->prependExtensionConfig('doctrine_phpcr', $doctrinePhpcrConfig);
}
if ($container->hasExtension('jms_serializer')) {
$container->prependExtensionConfig('jms_serializer', ['metadata' => ['directories' => [['path' => __DIR__ . '/../Resources/config/serializer', 'namespace_prefix' => 'Sulu\\Component\\DocumentManager']]]]);
}
if ($container->hasExtension('fos_rest')) {
$container->prependExtensionConfig('fos_rest', ['exception' => ['codes' => ['Sulu\\Component\\DocumentManager\\Exception\\DocumentNotFoundException' => 404, 'Sulu\\Component\\Content\\Exception\\MandatoryPropertyException' => 400]]]);
}
}