bug #18566 [SecurityBundle] fixed DebugAccessDecisionManager config (HeahDude)

This PR was squashed before being merged into the 3.1-dev branch (closes #18566).

Discussion
----------

[SecurityBundle] fixed DebugAccessDecisionManager config

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #18554
| License       | MIT
| Doc PR        | ~

Commits
-------

53c78fe [SecurityBundle] fixed DebugAccessDecisionManager config
This commit is contained in:
Fabien Potencier 2016-04-28 12:25:11 +02:00
commit cc8c5b5181
3 changed files with 10 additions and 12 deletions

View File

@ -45,10 +45,10 @@ class AddSecurityVotersPass implements CompilerPassInterface
throw new LogicException('No security voters found. You need to tag at least one with "security.voter"');
}
$container->getDefinition('security.access.decision_manager')->addMethodCall('setVoters', array(array_values($voters)));
if ($container->hasDefinition('debug.security.access.decision_manager')) {
$container->getDefinition('debug.security.access.decision_manager')->addMethodCall('setVoters', array(array_values($voters)));
}
$adm = $container->hasDefinition('debug.security.access.decision_manager')
? $container->getDefinition('debug.security.access.decision_manager')
: $container->getDefinition('security.access.decision_manager')
;
$adm->addMethodCall('setVoters', array(array_values($voters)));
}
}

View File

@ -66,6 +66,10 @@ class SecurityExtension extends Extension
$loader->load('collectors.xml');
$loader->load('guard.xml');
if ($container->hasParameter('kernel.debug') && $container->getParameter('kernel.debug')) {
$loader->load('security_debug.xml');
}
if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
$container->removeDefinition('security.expression_language');
$container->removeDefinition('security.access.expression_voter');
@ -97,13 +101,6 @@ class SecurityExtension extends Extension
$this->aclLoad($config['acl'], $container);
}
if ($container->hasParameter('kernel.debug') && $container->getParameter('kernel.debug')) {
$loader->load('security_debug.xml');
$definition = $container->findDefinition('security.authorization_checker');
$definition->replaceArgument(2, new Reference('debug.security.access.decision_manager'));
}
// add some required classes for compilation
$this->addClassesToCompile(array(
'Symfony\Component\Security\Http\Firewall',

View File

@ -61,6 +61,7 @@ class DebugAccessDecisionManager implements AccessDecisionManagerInterface
public function setVoters(array $voters)
{
$this->voters = $voters;
$this->manager->setVoters($voters);
}
/**