Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit80e891a

Browse files
authored
Merge branch '7.3' into MapSession
2 parents6840498 +da15553 commit80e891a

File tree

126 files changed

+1196
-721
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+1196
-721
lines changed

‎.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
| Q | A
22
| ------------- | ---
3-
| Branch? | 7.3 for features /5.4,6.4, 7.1, and 7.2 for bug fixes<!-- see below-->
3+
| Branch? | 7.3 for features / 6.4, 7.1, and 7.2 for bug fixes<!-- see below-->
44
| Bug fix? | yes/no
55
| New feature? | yes/no<!-- please update src/**/CHANGELOG.md files-->
66
| Deprecations? | yes/no<!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files-->

‎src/Symfony/Bridge/Doctrine/Messenger/DoctrineTransactionMiddleware.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,30 @@ class DoctrineTransactionMiddleware extends AbstractDoctrineMiddleware
2727
protectedfunctionhandleForManager(EntityManagerInterface$entityManager,Envelope$envelope,StackInterface$stack):Envelope
2828
{
2929
$entityManager->getConnection()->beginTransaction();
30+
31+
$success =false;
3032
try {
3133
$envelope =$stack->next()->handle($envelope,$stack);
3234
$entityManager->flush();
3335
$entityManager->getConnection()->commit();
3436

37+
$success =true;
38+
3539
return$envelope;
3640
}catch (\Throwable$exception) {
37-
$entityManager->getConnection()->rollBack();
38-
3941
if ($exceptioninstanceof HandlerFailedException) {
4042
// Remove all HandledStamp from the envelope so the retry will execute all handlers again.
4143
// When a handler fails, the queries of allegedly successful previous handlers just got rolled back.
4244
thrownewHandlerFailedException($exception->getEnvelope()->withoutAll(HandledStamp::class),$exception->getWrappedExceptions());
4345
}
4446

4547
throw$exception;
48+
}finally {
49+
$connection =$entityManager->getConnection();
50+
51+
if (!$success &&$connection->isTransactionActive()) {
52+
$connection->rollBack();
53+
}
4654
}
4755
}
4856
}

‎src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrineTransactionMiddlewareTest.php

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,37 @@ public function testMiddlewareWrapsInTransactionAndFlushes()
5656

5757
publicfunctiontestTransactionIsRolledBackOnException()
5858
{
59-
$this->connection->expects($this->once())
60-
->method('beginTransaction')
61-
;
62-
$this->connection->expects($this->once())
63-
->method('rollBack')
64-
;
59+
$this->connection->expects($this->once())->method('beginTransaction');
60+
$this->connection->expects($this->once())->method('isTransactionActive')->willReturn(true);
61+
$this->connection->expects($this->once())->method('rollBack');
6562

6663
$this->expectException(\RuntimeException::class);
6764
$this->expectExceptionMessage('Thrown from next middleware.');
6865

6966
$this->middleware->handle(newEnvelope(new \stdClass()),$this->getThrowingStackMock());
7067
}
7168

69+
publicfunctiontestExceptionInRollBackDoesNotHidePreviousException()
70+
{
71+
$this->connection->expects($this->once())->method('beginTransaction');
72+
$this->connection->expects($this->once())->method('isTransactionActive')->willReturn(true);
73+
$this->connection->expects($this->once())->method('rollBack')->willThrowException(new \RuntimeException('Thrown from rollBack.'));
74+
75+
try {
76+
$this->middleware->handle(newEnvelope(new \stdClass()),$this->getThrowingStackMock());
77+
}catch (\Throwable$exception) {
78+
}
79+
80+
self::assertNotNull($exception);
81+
self::assertInstanceOf(\RuntimeException::class,$exception);
82+
self::assertSame('Thrown from rollBack.',$exception->getMessage());
83+
84+
$previous =$exception->getPrevious();
85+
self::assertNotNull($previous);
86+
self::assertInstanceOf(\RuntimeException::class,$previous);
87+
self::assertSame('Thrown from next middleware.',$previous->getMessage());
88+
}
89+
7290
publicfunctiontestInvalidEntityManagerThrowsException()
7391
{
7492
$managerRegistry =$this->createMock(ManagerRegistry::class);

‎src/Symfony/Bridge/Twig/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
7.3
5+
---
6+
7+
* Add`is_granted_for_user()` Twig function
8+
49
7.2
510
---
611

‎src/Symfony/Bridge/Twig/Extension/SecurityExtension.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313

1414
useSymfony\Component\Security\Acl\Voter\FieldVote;
1515
useSymfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
16+
useSymfony\Component\Security\Core\Authorization\UserAuthorizationCheckerInterface;
1617
useSymfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException;
18+
useSymfony\Component\Security\Core\User\UserInterface;
1719
useSymfony\Component\Security\Http\Impersonate\ImpersonateUrlGenerator;
1820
useTwig\Extension\AbstractExtension;
1921
useTwig\TwigFunction;
@@ -28,6 +30,7 @@ final class SecurityExtension extends AbstractExtension
2830
publicfunction__construct(
2931
private ?AuthorizationCheckerInterface$securityChecker =null,
3032
private ?ImpersonateUrlGenerator$impersonateUrlGenerator =null,
33+
private ?UserAuthorizationCheckerInterface$userSecurityChecker =null,
3134
) {
3235
}
3336

@@ -48,6 +51,19 @@ public function isGranted(mixed $role, mixed $object = null, ?string $field = nu
4851
}
4952
}
5053

54+
publicfunctionisGrantedForUser(UserInterface$user,mixed$attribute,mixed$subject =null, ?string$field =null):bool
55+
{
56+
if (!$this->userSecurityChecker) {
57+
thrownew \LogicException(\sprintf('An instance of "%s" must be provided to use "%s()".', UserAuthorizationCheckerInterface::class,__METHOD__));
58+
}
59+
60+
if ($field) {
61+
$subject =newFieldVote($subject,$field);
62+
}
63+
64+
return$this->userSecurityChecker->isGrantedForUser($user,$attribute,$subject);
65+
}
66+
5167
publicfunctiongetImpersonateExitUrl(?string$exitTo =null):string
5268
{
5369
if (null ===$this->impersonateUrlGenerator) {
@@ -86,12 +102,18 @@ public function getImpersonatePath(string $identifier): string
86102

87103
publicfunctiongetFunctions():array
88104
{
89-
return [
105+
$functions = [
90106
newTwigFunction('is_granted',$this->isGranted(...)),
91107
newTwigFunction('impersonation_exit_url',$this->getImpersonateExitUrl(...)),
92108
newTwigFunction('impersonation_exit_path',$this->getImpersonateExitPath(...)),
93109
newTwigFunction('impersonation_url',$this->getImpersonateUrl(...)),
94110
newTwigFunction('impersonation_path',$this->getImpersonatePath(...)),
95111
];
112+
113+
if ($this->userSecurityChecker) {
114+
$functions[] =newTwigFunction('is_granted_for_user',$this->isGrantedForUser(...));
115+
}
116+
117+
return$functions;
96118
}
97119
}

‎src/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function testGenerateFragmentUri()
8080
]);
8181
$twig->addRuntimeLoader($loader);
8282

83-
$this->assertSame('/_fragment?_hash=XCg0hX8QzSwik8Xuu9aMXhoCeI4oJOob7lUVacyOtyY%3D&amp;_path=template%3Dfoo.html.twig%26_format%3Dhtml%26_locale%3Den%26_controller%3DSymfony%255CBundle%255CFrameworkBundle%255CController%255CTemplateController%253A%253AtemplateAction',$twig->render('index'));
83+
$this->assertMatchesRegularExpression('#/_fragment\?_hash=.+&amp;_path=template%3Dfoo.html.twig%26_format%3Dhtml%26_locale%3Den%26_controller%3DSymfony%255CBundle%255CFrameworkBundle%255CController%255CTemplateController%253A%253AtemplateAction$#',$twig->render('index'));
8484
}
8585

8686
protectedfunctiongetFragmentHandler($returnOrException):FragmentHandler

‎src/Symfony/Bridge/Twig/UndefinedCallableHandler.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class UndefinedCallableHandler
6161
'logout_url' =>'security-http',
6262
'logout_path' =>'security-http',
6363
'is_granted' =>'security-core',
64+
'is_granted_for_user' =>'security-core',
6465
'impersonation_path' =>'security-http',
6566
'impersonation_url' =>'security-http',
6667
'impersonation_exit_path' =>'security-http',

‎src/Symfony/Bridge/Twig/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"symfony/finder":"^6.4|^7.0",
3333
"symfony/form":"^6.4|^7.0",
3434
"symfony/html-sanitizer":"^6.4|^7.0",
35-
"symfony/http-foundation":"^6.4|^7.0",
35+
"symfony/http-foundation":"^7.3",
3636
"symfony/http-kernel":"^6.4|^7.0",
3737
"symfony/intl":"^6.4|^7.0",
3838
"symfony/mime":"^6.4|^7.0",

‎src/Symfony/Bundle/FrameworkBundle/Command/TranslationExtractCommand.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ public function __construct(
6060
privatearray$enabledLocales = [],
6161
) {
6262
parent::__construct();
63+
64+
if (!method_exists($writer,'getFormats')) {
65+
thrownew \InvalidArgumentException(sprintf('The writer class "%s" does not implement the "getFormats()" method.',$writer::class));
66+
}
6367
}
6468

6569
protectedfunctionconfigure():void
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespaceSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler;
13+
14+
useSymfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
15+
useSymfony\Component\DependencyInjection\ContainerBuilder;
16+
useSymfony\Component\Translation\TranslatorBagInterface;
17+
useSymfony\Contracts\Translation\TranslatorInterface;
18+
19+
finalclass TranslationLintCommandPassimplements CompilerPassInterface
20+
{
21+
publicfunctionprocess(ContainerBuilder$container):void
22+
{
23+
if (!$container->hasDefinition('console.command.translation_lint') || !$container->has('translator')) {
24+
return;
25+
}
26+
27+
$translatorClass =$container->getParameterBag()->resolveValue($container->findDefinition('translator')->getClass());
28+
29+
if (!is_subclass_of($translatorClass, TranslatorInterface::class) || !is_subclass_of($translatorClass, TranslatorBagInterface::class)) {
30+
$container->removeDefinition('console.command.translation_lint');
31+
}
32+
}
33+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespaceSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler;
13+
14+
useSymfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
15+
useSymfony\Component\DependencyInjection\ContainerBuilder;
16+
17+
class TranslationUpdateCommandPassimplements CompilerPassInterface
18+
{
19+
publicfunctionprocess(ContainerBuilder$container):void
20+
{
21+
if (!$container->hasDefinition('console.command.translation_extract')) {
22+
return;
23+
}
24+
25+
$translationWriterClass =$container->getParameterBag()->resolveValue($container->findDefinition('translation.writer')->getClass());
26+
27+
if (!method_exists($translationWriterClass,'getFormats')) {
28+
$container->removeDefinition('console.command.translation_extract');
29+
}
30+
}
31+
}

‎src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@
126126
useSymfony\Component\Mime\MimeTypeGuesserInterface;
127127
useSymfony\Component\Mime\MimeTypes;
128128
useSymfony\Component\Notifier\BridgeasNotifierBridge;
129+
useSymfony\Component\Notifier\Bridge\FakeChat\FakeChatTransportFactory;
130+
useSymfony\Component\Notifier\Bridge\FakeSms\FakeSmsTransportFactory;
129131
useSymfony\Component\Notifier\ChatterInterface;
130132
useSymfony\Component\Notifier\Notifier;
131133
useSymfony\Component\Notifier\Recipient\Recipient;
@@ -2032,6 +2034,10 @@ private function registerJsonEncoderConfiguration(array $config, ContainerBuilde
20322034
foreach ($config['paths']as$namespace =>$path) {
20332035
$loader->registerClasses($encodableDefinition,$namespace,$path);
20342036
}
2037+
2038+
if (\PHP_VERSION_ID >=80400) {
2039+
$container->removeDefinition('.json_encoder.cache_warmer.lazy_ghost');
2040+
}
20352041
}
20362042

20372043
privatefunctionregisterPropertyInfoConfiguration(ContainerBuilder$container,PhpFileLoader$loader):void
@@ -2898,8 +2904,6 @@ private function registerNotifierConfiguration(array $config, ContainerBuilder $
28982904
NotifierBridge\Engagespot\EngagespotTransportFactory::class =>'notifier.transport_factory.engagespot',
28992905
NotifierBridge\Esendex\EsendexTransportFactory::class =>'notifier.transport_factory.esendex',
29002906
NotifierBridge\Expo\ExpoTransportFactory::class =>'notifier.transport_factory.expo',
2901-
NotifierBridge\FakeChat\FakeChatTransportFactory::class =>'notifier.transport_factory.fake-chat',
2902-
NotifierBridge\FakeSms\FakeSmsTransportFactory::class =>'notifier.transport_factory.fake-sms',
29032907
NotifierBridge\Firebase\FirebaseTransportFactory::class =>'notifier.transport_factory.firebase',
29042908
NotifierBridge\FortySixElks\FortySixElksTransportFactory::class =>'notifier.transport_factory.forty-six-elks',
29052909
NotifierBridge\FreeMobile\FreeMobileTransportFactory::class =>'notifier.transport_factory.free-mobile',
@@ -2987,20 +2991,26 @@ private function registerNotifierConfiguration(array $config, ContainerBuilder $
29872991
$container->removeDefinition($classToServices[NotifierBridge\Mercure\MercureTransportFactory::class]);
29882992
}
29892993

2990-
if (ContainerBuilder::willBeAvailable('symfony/fake-chat-notifier',NotifierBridge\FakeChat\FakeChatTransportFactory::class, ['symfony/framework-bundle','symfony/notifier','symfony/mailer'])) {
2991-
$container->getDefinition($classToServices[NotifierBridge\FakeChat\FakeChatTransportFactory::class])
2992-
->replaceArgument(0,newReference('mailer'))
2993-
->replaceArgument(1,newReference('logger'))
2994+
// don't use ContainerBuilder::willBeAvailable() as these are not needed in production
2995+
if (class_exists(FakeChatTransportFactory::class)) {
2996+
$container->getDefinition('notifier.transport_factory.fake-chat')
2997+
->replaceArgument(0,newReference('mailer', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
2998+
->replaceArgument(1,newReference('logger', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
29942999
->addArgument(newReference('event_dispatcher', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
29953000
->addArgument(newReference('http_client', ContainerBuilder::NULL_ON_INVALID_REFERENCE));
3001+
}else {
3002+
$container->removeDefinition('notifier.transport_factory.fake-chat');
29963003
}
29973004

2998-
if (ContainerBuilder::willBeAvailable('symfony/fake-sms-notifier',NotifierBridge\FakeSms\FakeSmsTransportFactory::class, ['symfony/framework-bundle','symfony/notifier','symfony/mailer'])) {
2999-
$container->getDefinition($classToServices[NotifierBridge\FakeSms\FakeSmsTransportFactory::class])
3000-
->replaceArgument(0,newReference('mailer'))
3001-
->replaceArgument(1,newReference('logger'))
3005+
// don't use ContainerBuilder::willBeAvailable() as these are not needed in production
3006+
if (class_exists(FakeSmsTransportFactory::class)) {
3007+
$container->getDefinition('notifier.transport_factory.fake-sms')
3008+
->replaceArgument(0,newReference('mailer', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
3009+
->replaceArgument(1,newReference('logger', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
30023010
->addArgument(newReference('event_dispatcher', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
30033011
->addArgument(newReference('http_client', ContainerBuilder::NULL_ON_INVALID_REFERENCE));
3012+
}else {
3013+
$container->removeDefinition('notifier.transport_factory.fake-sms');
30043014
}
30053015

30063016
if (ContainerBuilder::willBeAvailable('symfony/bluesky-notifier',NotifierBridge\Bluesky\BlueskyTransportFactory::class, ['symfony/framework-bundle','symfony/notifier'])) {

‎src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\RemoveUnusedSessionMarshallingHandlerPass;
2020
useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TestServiceContainerRealRefPass;
2121
useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TestServiceContainerWeakRefPass;
22+
useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslationLintCommandPass;
23+
useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslationUpdateCommandPass;
2224
useSymfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass;
2325
useSymfony\Bundle\FrameworkBundle\DependencyInjection\VirtualRequestStackPass;
2426
useSymfony\Component\Cache\Adapter\ApcuAdapter;
@@ -149,6 +151,8 @@ public function build(ContainerBuilder $container): void
149151
$this->addCompilerPassIfExists($container, AddConstraintValidatorsPass::class);
150152
$this->addCompilerPassIfExists($container, AddValidatorInitializersPass::class);
151153
$this->addCompilerPassIfExists($container, AddConsoleCommandPass::class, PassConfig::TYPE_BEFORE_REMOVING);
154+
// must be registered before the AddConsoleCommandPass
155+
$container->addCompilerPass(newTranslationLintCommandPass(), PassConfig::TYPE_BEFORE_REMOVING,10);
152156
// must be registered as late as possible to get access to all Twig paths registered in
153157
// twig.template_iterator definition
154158
$this->addCompilerPassIfExists($container, TranslatorPass::class, PassConfig::TYPE_BEFORE_OPTIMIZATION, -32);
@@ -181,6 +185,7 @@ public function build(ContainerBuilder $container): void
181185
// must be registered after MonologBundle's LoggerChannelPass
182186
$container->addCompilerPass(newErrorLoggerCompilerPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, -32);
183187
$container->addCompilerPass(newVirtualRequestStackPass());
188+
$container->addCompilerPass(newTranslationUpdateCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
184189

185190
if ($container->getParameter('kernel.debug')) {
186191
$container->addCompilerPass(newAddDebugLogProcessorPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION,2);

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/json_encoder.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
tagged_locator('json_encoder.normalizer'),
3333
service('json_encoder.encode.property_metadata_loader'),
3434
param('.json_encoder.encoders_dir'),
35-
false,
3635
])
3736
->set('json_encoder.decoder', JsonDecoder::class)
3837
->args([
@@ -113,7 +112,6 @@
113112
service('json_encoder.decode.property_metadata_loader'),
114113
param('.json_encoder.encoders_dir'),
115114
param('.json_encoder.decoders_dir'),
116-
false,
117115
service('logger')->ignoreOnInvalid(),
118116
])
119117
->tag('kernel.cache_warmer')

‎src/Symfony/Bundle/FrameworkBundle/Tests/Functional/FragmentTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,6 @@ public function testGenerateFragmentUri()
5050
$client =self::createClient(['test_case' =>'Fragment','root_config' =>'config.yml','debug' =>true]);
5151
$client->request('GET','/fragment_uri');
5252

53-
$this->assertSame('/_fragment?_hash=CCRGN2D%2FoAJbeGz%2F%2FdoH3bNSPwLCrmwC1zAYCGIKJ0E%3D&_path=_format%3Dhtml%26_locale%3Den%26_controller%3DSymfony%255CBundle%255CFrameworkBundle%255CTests%255CFunctional%255CBundle%255CTestBundle%255CController%255CFragmentController%253A%253AindexAction',$client->getResponse()->getContent());
53+
$this->assertMatchesRegularExpression('#/_fragment\?_hash=.+&_path=_format%3Dhtml%26_locale%3Den%26_controller%3DSymfony%255CBundle%255CFrameworkBundle%255CTests%255CFunctional%255CBundle%255CTestBundle%255CController%255CFragmentController%253A%253AindexAction$#',$client->getResponse()->getContent());
5454
}
5555
}

‎src/Symfony/Bundle/FrameworkBundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"symfony/deprecation-contracts":"^2.5|^3",
2626
"symfony/error-handler":"^6.4|^7.0",
2727
"symfony/event-dispatcher":"^6.4|^7.0",
28-
"symfony/http-foundation":"^6.4|^7.0",
28+
"symfony/http-foundation":"^7.3",
2929
"symfony/http-kernel":"^7.3",
3030
"symfony/polyfill-mbstring":"~1.0",
3131
"symfony/filesystem":"^7.1",

‎src/Symfony/Bundle/SecurityBundle/Resources/config/templating_twig.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
->args([
2727
service('security.authorization_checker')->ignoreOnInvalid(),
2828
service('security.impersonate_url_generator')->ignoreOnInvalid(),
29+
service('security.user_authorization_checker')->ignoreOnInvalid(),
2930
])
3031
->tag('twig.extension')
3132
;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp