Skip to content

Commit 2069794

Browse files
committed
voter fixes
1 parent b214121 commit 2069794

File tree

5 files changed

+10
-8
lines changed

5 files changed

+10
-8
lines changed

DependencyInjection/Compiler/GateKeeperCompilerPass.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ public function process(ContainerBuilder $container)
2727
return;
2828
}
2929

30+
$definition = $container->getDefinition('gatekeeper.voter');
31+
$definition->addArgument(new Reference($container->getParameter('gatekeeper.provider.service')));
32+
3033
$definition = $container->getDefinition('gatekeeper');
3134
$definition->addArgument(new Reference($container->getParameter('gatekeeper.repository.service')));
3235

DependencyInjection/Configuration.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public function getConfigTreeBuilder()
2424
->scalarNode('repository_service')
2525
->defaultValue('gatekeeper.repository.dummy')
2626
->end()
27+
->scalarNode('provider_service')
28+
->defaultValue('gatekeeper.gates_provider.dummy')
29+
->end()
2730
->end();
2831

2932
return $treeBuilder;

DependencyInjection/GateKeeperExtension.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public function load(array $configs, ContainerBuilder $container)
2323
$config = $this->processConfiguration($configuration, $configs);
2424

2525
$container->setParameter('gatekeeper.repository.service', $config['repository_service']);
26+
$container->setParameter('gatekeeper.provider.service', $config['provider_service']);
2627

2728
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
2829
$loader->load('services.yml');

Resources/config/services.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ services:
1515

1616
gatekeeper.voter:
1717
class: GateKeeperBundle\Voter\GateKeeper
18-
arguments: [@gatekeeper, @gatekeeper.gates_provider.dummy]
18+
arguments: [@gatekeeper]
1919
tags:
2020
- { name: security.voter }
2121

Voter/GateKeeper.php

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,7 @@ public function __construct(Keeper $gateKeeper, GatesProviderInterface $gatesPro
4848
*/
4949
public function supportsAttribute($attribute)
5050
{
51-
if (null === $this->gates)
52-
{
53-
$this->gates = $this->gatesProvider->getGates();
54-
}
55-
56-
return in_array($attribute, $this->gates);
51+
return strpos($attribute, 'GATE_') === 0;
5752
}
5853

5954
/**
@@ -92,7 +87,7 @@ public function vote(TokenInterface $token, $object, array $attributes)
9287
}
9388

9489
$user = $token->getUser() instanceof ObjectInterface ? $token->getUser() : null;
95-
$attributes = is_array($object) ? $object : [];
90+
$object = is_array($object) ? $object : [];
9691

9792
if ($this->gateKeeper->hasAccess($attributes[0], $user, $object))
9893
{

0 commit comments

Comments
 (0)