|
4 | 4 |
|
5 | 5 | namespace Sybio\PermissionBundle\DependencyInjection; |
6 | 6 |
|
| 7 | +use Sybio\PermissionBundle\Decision\PermissionDecisionFactory; |
| 8 | +use Sybio\PermissionBundle\Decision\PermissionDecisionFactoryInterface; |
7 | 9 | use Sybio\PermissionBundle\PermissionCheckerInterface; |
8 | 10 | use Sybio\PermissionBundle\Security\PermissionVoter; |
| 11 | +use Sybio\PermissionBundle\Twig\HasPermissionTwigFunction; |
| 12 | +use Sybio\PermissionBundle\Twig\PermissionTwigFunction; |
9 | 13 | use Sybio\PermissionBundle\Validation\PermissionConstraintValidator; |
10 | 14 | use Sybio\PermissionBundle\Validation\PermissionValidator; |
11 | 15 | use Sybio\PermissionBundle\Validation\PermissionValidatorInterface; |
@@ -70,10 +74,39 @@ public function load( |
70 | 74 | ->addTag('security.voter'), |
71 | 75 | ); |
72 | 76 |
|
| 77 | + /** @see PermissionDecisionFactory */ |
| 78 | + $container->setDefinition( |
| 79 | + 'sybio_permission.result_factory', |
| 80 | + (new Definition(PermissionDecisionFactory::class)) |
| 81 | + ->setPublic(false), |
| 82 | + ); |
| 83 | + |
| 84 | + /** @see HasPermissionTwigFunction */ |
| 85 | + $container->setDefinition( |
| 86 | + 'sybio_permission.twig.has_permission', |
| 87 | + (new Definition(HasPermissionTwigFunction::class)) |
| 88 | + ->setArgument(0, new Reference('security.authorization_checker')) |
| 89 | + ->setArgument(1, $container->getParameter('sybio_permission.security_attribute')) |
| 90 | + ->addTag('twig.extension') |
| 91 | + ->setPublic(false), |
| 92 | + ); |
| 93 | + |
| 94 | + /** @see PermissionTwigFunction */ |
| 95 | + $container->setDefinition( |
| 96 | + 'sybio_permission.twig.permission', |
| 97 | + (new Definition(PermissionTwigFunction::class)) |
| 98 | + ->setArgument(0, new Reference('security.authorization_checker')) |
| 99 | + ->setArgument(1, new Reference('sybio_permission.validator')) |
| 100 | + ->setArgument(2, new Reference('sybio_permission.result_factory')) |
| 101 | + ->addTag('twig.extension') |
| 102 | + ->setPublic(false), |
| 103 | + ); |
| 104 | + |
73 | 105 | $container->setAlias(PermissionConstraintValidator::class, 'sybio_permission.constraint_validator'); |
74 | 106 | $container->setAlias(PermissionValidatorInterface::class, 'sybio_permission.validator'); |
75 | 107 | $container->setAlias(PermissionValidator::class, 'sybio_permission.validator'); |
76 | 108 | $container->setAlias(PermissionVoter::class, 'sybio_permission.voter'); |
| 109 | + $container->setAlias(PermissionDecisionFactoryInterface::class, 'sybio_permission.result_factory'); |
77 | 110 | } |
78 | 111 |
|
79 | 112 | public function getAlias(): string |
|
0 commit comments