Преглед изворни кода

[SecurityBundle] inline parameters which are only used in one place

Johannes Schmitt пре 14 година
родитељ
комит
4776f9523b

+ 20 - 11
src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php

@@ -66,10 +66,13 @@ class SecurityExtension extends Extension
 
         // set some global scalars
         $container->setParameter('security.access.denied_url', $config['access_denied_url']);
-        $container->setParameter('security.authentication.session_strategy.strategy', $config['session_fixation_strategy']);
-        $container->setParameter('security.access.decision_manager.strategy', $config['access_decision_manager']['strategy']);
-        $container->setParameter('security.access.decision_manager.allow_if_all_abstain', $config['access_decision_manager']['allow_if_all_abstain']);
-        $container->setParameter('security.access.decision_manager.allow_if_equal_granted_denied', $config['access_decision_manager']['allow_if_equal_granted_denied']);
+        $container->getDefinition('security.authentication.session_strategy')->setArgument(0, $config['session_fixation_strategy']);
+        $container
+            ->getDefinition('security.access.decision_manager')
+            ->addArgument($config['access_decision_manager']['strategy'])
+            ->addArgument($config['access_decision_manager']['allow_if_all_abstain'])
+            ->addArgument($config['access_decision_manager']['allow_if_equal_granted_denied'])
+        ;
         $container->setParameter('security.access.always_authenticate_before_granting', $config['always_authenticate_before_granting']);
 
         $this->createFirewalls($config, $container);
@@ -118,14 +121,20 @@ class SecurityExtension extends Extension
         if (isset($config['cache']['id'])) {
             $container->setAlias('security.acl.cache', $config['cache']['id']);
         }
-        $container->setParameter('security.acl.cache.doctrine.prefix', $config['cache']['prefix']);
+        $container->getDefinition('security.acl.cache.doctrine')->addArgument($config['cache']['prefix']);
+
+        $container
+            ->getDefinition('security.acl.dbal.provider')
+            ->setArgument(2, array(
+                'class_table_name' => $config['tables']['class'],
+                'entry_table_name' => $config['tables']['entry'],
+                'oid_table_name'   => $config['tables']['object_identity'],
+                'oid_ancestors_table_name' => $config['tables']['object_identity_ancestors'],
+                'sid_table_name' => $config['tables']['security_identity'],
+            ))
+        ;
 
-        $container->setParameter('security.acl.dbal.class_table_name', $config['tables']['class']);
-        $container->setParameter('security.acl.dbal.entry_table_name', $config['tables']['entry']);
-        $container->setParameter('security.acl.dbal.oid_table_name', $config['tables']['object_identity']);
-        $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.voter.allow_if_object_identity_unavailable', $config['voter']['allow_if_object_identity_unavailable']);
+        $container->getDefinition('security.acl.voter.basic_permissions')->addArgument($config['voter']['allow_if_object_identity_unavailable']);
     }
 
     /**

+ 1 - 4
src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml

@@ -58,7 +58,7 @@
         </service>
 
         <service id="security.authentication.session_strategy" class="%security.authentication.session_strategy.class%" public="false">
-            <argument>%security.authentication.session_strategy.strategy%</argument>
+            <argument /> <!-- Strategy -->
         </service>
 
         <service id="security.encoder_factory.generic" class="%security.encoder_factory.generic.class%" public="false">
@@ -73,9 +73,6 @@
         <!-- Authorization related services -->
         <service id="security.access.decision_manager" class="%security.access.decision_manager.class%" public="false">
             <argument type="collection"></argument>
-            <argument>%security.access.decision_manager.strategy%</argument>
-            <argument>%security.access.decision_manager.allow_if_all_abstain%</argument>
-            <argument>%security.access.decision_manager.allow_if_equal_granted_denied%</argument>
         </service>
 
         <service id="security.role_hierarchy" class="%security.role_hierarchy.class%" public="false">

+ 1 - 9
src/Symfony/Bundle/SecurityBundle/Resources/config/security_acl.xml

@@ -33,13 +33,7 @@
         <service id="security.acl.dbal.provider" class="%security.acl.dbal.provider.class%" public="false">
             <argument type="service" id="security.acl.dbal.connection" />
             <argument type="service" id="security.acl.permission_granting_strategy" />
-            <argument type="collection">
-                <argument key="class_table_name">%security.acl.dbal.class_table_name%</argument>
-                <argument key="entry_table_name">%security.acl.dbal.entry_table_name%</argument>
-                <argument key="oid_table_name">%security.acl.dbal.oid_table_name%</argument>
-                <argument key="oid_ancestors_table_name">%security.acl.dbal.oid_ancestors_table_name%</argument>
-                <argument key="sid_table_name">%security.acl.dbal.sid_table_name%</argument>
-            </argument>
+            <argument /> <!-- Table collection -->
             <argument type="service" id="security.acl.cache" on-invalid="null" />
         </service>
 
@@ -54,7 +48,6 @@
         <service id="security.acl.cache.doctrine" class="%security.acl.cache.doctrine.class%" public="false">
             <argument type="service" id="security.acl.cache.doctrine_cache_impl" />
             <argument type="service" id="security.acl.permission_granting_strategy" />        
-            <argument>%security.acl.cache.doctrine.prefix%</argument>
         </service>
 
         <service id="security.acl.cache.doctrine.cache_impl" alias="doctrine.orm.default_result_cache" public="false" />
@@ -67,7 +60,6 @@
             <argument type="service" id="security.acl.security_identity_retrieval_strategy" />
             <argument type="service" id="security.acl.permission.map" />
             <argument type="service" id="logger" on-invalid="null" />
-            <argument>%security.acl.voter.allow_if_object_identity_unavailable%</argument>
             <tag name="security.voter" priority="255" />
         </service>
     </services>