update DI to handle change in config and another provider

This commit is contained in:
IamPersistent 2011-04-23 07:39:16 -07:00
parent 314f361846
commit ebcd6f4563

View File

@ -110,13 +110,21 @@ class SecurityExtension extends Extension
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('security_acl.xml'); $loader->load('security_acl.xml');
if (isset($config['connection'])) {
$container->setAlias('security.acl.dbal.connection', sprintf('doctrine.dbal.%s_connection', $config['connection']));
}
if (isset($config['cache']['id'])) { if (isset($config['cache']['id'])) {
$container->setAlias('security.acl.cache', $config['cache']['id']); $container->setAlias('security.acl.cache', $config['cache']['id']);
} }
$container->getDefinition('security.acl.voter.basic_permissions')->addArgument($config['voter']['allow_if_object_identity_unavailable']);
if (isset($config['provider'])) {
$container->setAlias('security.acl.provider', $config['provider']);
return;
}
$loader->load('security_acl_dbal.xml');
if (isset($config['connection'])) {
$container->setAlias('security.acl.dbal.connection', sprintf('doctrine.dbal.%s_connection', $config['connection']));
}
$container->getDefinition('security.acl.cache.doctrine')->addArgument($config['cache']['prefix']); $container->getDefinition('security.acl.cache.doctrine')->addArgument($config['cache']['prefix']);
$container->setParameter('security.acl.dbal.class_table_name', $config['tables']['class']); $container->setParameter('security.acl.dbal.class_table_name', $config['tables']['class']);
@ -125,7 +133,6 @@ class SecurityExtension extends Extension
$container->setParameter('security.acl.dbal.oid_ancestors_table_name', $config['tables']['object_identity_ancestors']); $container->setParameter('security.acl.dbal.oid_ancestors_table_name', $config['tables']['object_identity_ancestors']);
$container->setParameter('security.acl.dbal.sid_table_name', $config['tables']['security_identity']); $container->setParameter('security.acl.dbal.sid_table_name', $config['tables']['security_identity']);
$container->getDefinition('security.acl.voter.basic_permissions')->addArgument($config['voter']['allow_if_object_identity_unavailable']);
} }
/** /**
@ -594,3 +601,4 @@ class SecurityExtension extends Extension
return 'http://symfony.com/schema/dic/security'; return 'http://symfony.com/schema/dic/security';
} }
} }