This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Make Login Rate Limiter also case insensitive for non-ascii user identifiers
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
As per discussion in https://github.com/symfony/symfony/pull/41156
Commits
-------
3b7e7fbc7f [Security] Make Login Rate Limiter also case insensitive for non-ascii user identifiers
* 4.4:
[Inflector][String] wrong plural form of words ending by "pectus"
[HttpClient] Don't prepare the request in ScopingHttpClient
[Console] Fixes for PHP 8.1 deprecations
Fix/Rewrite .gitignore regex builder
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Inflector][String] wrong plural form of words ending by "pectus"
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#41124
| License | MIT
| Doc PR | N/A
Commits
-------
0dc8893caa [Inflector][String] wrong plural form of words ending by "pectus"
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpClient] Don't prepare the request in ScopingHttpClient
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Spotted while working on #41159 (needed by it.)
Commits
-------
a53db83823 [HttpClient] Don't prepare the request in ScopingHttpClient
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Make Login Rate Limiter case insensitive
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Login RateLimiter is case sensitive, while most login forms aren't case sensitive.
This PR makes `DefaultLoginRateLimiter` case insensitive.
Commits
-------
c333f3d547 Make LoginRateLimiter case insentive
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Translation count argument for TooManyLoginAttemptsAuthenticationException
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| License | MIT
Added `%count%` argument to leverage translator's pluralization functionality as discussed in https://github.com/symfony/symfony/pull/41097
Commits
-------
2bf0b485f9 Provide count argument for TooManyLoginAttemptsAuthenticationException to be able to translate in plural way
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] NullToken signature
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
The signature of `TokenInterface::getUser` does not allow returning null. But `NullToken` returns `null`.
0f96ac7484/src/Symfony/Component/Security/Core/Authentication/Token/TokenInterface.php (L49-L56)
This PR update `NullToken::getUser` to return an empty string instead of null.
I wonder if the fix shouldn't be to change the return type in the interface, but that would be a BC break, right?
Commits
-------
9ad3720efc [security] NullToken signature
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
Fix/Rewrite .gitignore regex builder
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | fix#39257
| License | MIT
| Doc PR | no
This PR fixes `.gitignore` with exclude wildcard ignore rules like `!a/*/b` were failing with `preg_match(): Compilation failed: lookbehind assertion is not fixed length at offset` PHP error.
Functionality/performance was verified against large `.gitignore` files:
- https://github.com/PrestaShop/PrestaShop/blob/1.7.7.3/.gitignore
- https://github.com/dotnet/installer/blob/v5.0.202/.gitignore
- https://github.com/dotnet/runtime/blob/v5.0.5/.gitignore
This PR also improves the testing cases.
Commits
-------
83f9fd3adf Fix/Rewrite .gitignore regex builder
This PR was submitted for the 5.x branch but it was squashed and merged into the 5.2 branch instead.
Discussion
----------
[Console] Fix Windows code page support
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37385, Fix#35842, Fix#36324, Fix#37495, Fix#37278
| License | MIT
Corrects previous fixes that dealt with the mojibake problem on Windows where an OEM code page was applied to an input string and then messed with PHP.internal_encoding setting used by the script. This caused strings with different encodings to be displayed on the console output.
Commits
-------
be68682fd1 [Console] Fix Windows code page support
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Allow ips parameter in access_control to accept comma-separated string
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #40881, #40864, #40865
| License | MIT
PR #38149 introduced a new feature to accept a comma-separated string in ip adresses setting in `access_control` configuration section of security bundle.
However the feature works in inconsistent manner: comma-separated string can be successfully passed via environment variable, but can not be passed as plain string. This PR changes this inconsistent behavior by allowing validation pass if comma-separated list of ip addresses is given in plain string.
More detailed explanation about the inconsistent behavior can be found [here](https://github.com/symfony/symfony/issues/40881#issuecomment-823906622)
Commits
-------
8947482342 [SecurityBundle] Allow ips parameter in access_control accept comma-separated string
This PR was merged into the 5.2 branch.
Discussion
----------
[TwigBridge] Fix HTML for translatable custom-file label in Bootstrap 4 theme
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Bootstrap allows to translate/change the label of the upload button of a `custom-file` input via SCSS, see [Bootstrap docs](https://getbootstrap.com/docs/4.6/components/forms/#translating-or-customizing-the-strings-with-scss):
~~~scss
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
~~~
This works by generating the following CSS which depends on the `lang` attribute of the input:
~~~css
.custom-file-input:lang(es) ~ .custom-file-label::after {
content: "Elegir";
}
~~~
This however currently does not work with the HTML generated by the theme since the resulting HTML is of the form (redacted here to the relevant parts):
~~~html
<div class="custom-file">
<input type="file" id="..." class="custom-file-input">
<label for="..." lang="es" class="custom-file-label"></label>
</div>
~~~
while it should be of the form
~~~html
<div class="custom-file">
<input type="file" id="..." lang="es" class="custom-file-input">
<label for="..." class="custom-file-label"></label>
</div>
~~~
i.e. the `lang` was placed on the `label` instead of the `input`.
This PR fixes this to be compatible with Bootstrap 4.
Commits
-------
a95bbaaaef [TwigBridge] Fix HTML for translatable custom-file label in Bootstrap 4 theme
This PR was merged into the 5.2 branch.
Discussion
----------
[Notifier] [Bridge] Fix missed messageId for SendMessage object in slack notifier
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | -
| Tickets | -
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
There are missed messageId property for SendMessage object in slack notifier.
Regarding slack's documentation: https://api.slack.com/messaging/sending#publishing
> One very important piece of information in this response is the `ts` value, which is essentially the ID of the message,
Commits
-------
838f36b09f [Notifier] [Bridge] Store message id for slack transport's SendMessage
This PR was merged into the 5.2 branch.
Discussion
----------
[Form] Add missing TranslatableMessage support to choice_label option of ChoiceType
It leads to loss of information because it'll use `__toString` to cast, which is incompatible with newly added `TranslatableMessage`, for example.
| Q | A
| ------------- | ---
| Branch? | 5.2 <!-- see below -->
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#40622 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | _none_
So this one's a bit tricky in my mind. I didn't want to check if `$dynamicLabel instanceof TranslatableMessage`, because of course it doesn't belong to the same component.
Aside, it would sound so strange to me to add `|object` to `$label` here: bb1e1e58ae/src/Symfony/Component/Form/ChoiceList/View/ChoiceView.php (L40)
But maybe that's the way to go? Requiring your help here. I'm fully open to your ideas, as we're loosing a big feature here by losing `TranslatableMessage` translation parameters.
If the passed object doesn't implement `__toString`, it'll lead to an exception during template rendering, as expected.
Commits
-------
c2873aaf0e [Form] Add TranslatableMessage support to choice_label option of ChoiceType
This PR was merged into the 5.2 branch.
Discussion
----------
Remove code that deals with legacy behavior of PHP_Incomplete_Class
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
c5a4f7d8f9 Remove code that deals with legacy behavior of PHP_Incomplete_Class
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[PropertyInfo] Make ReflectionExtractor correctly extract nullability
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#40659
| License | MIT
| Doc PR | no
When the property had a default value ReflectionExtractor was always returning isNullable: false. After PHP 7.4 we can get isNullable from the typehint.
Commits
-------
d5fce4c779 [PropertyInfo] Make ReflectionExtractor correctly extract nullability
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[PropertyInfo] fix attribute namespace with recursive traits
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#36997 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
The targeted issue is closed because considered as solved by https://github.com/symfony/symfony/pull/40175.
However, the fix is not enough and is not working with recursive trait inclusion. (see https://github.com/symfony/symfony/issues/36997#issuecomment-822572640).
This pull request is completing the first fix of `@xabbuh`, trying to follow the same coding style. 😉
Commits
-------
bbadfb34cc [PropertyInfo] fix attribute namespace with recursive traits
This PR was submitted for the 5.x branch but it was squashed and merged into the 5.2 branch instead.
Discussion
----------
[PhpUnitBridge] Fix tests with ``@doesNotPerformAssertions`` annotations
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
If a test uses the ``@doesNotPerformAssertions`` and also has the Symfony Deprecation listener enabled because it is using the trait as well then this does not work as expected. Currently the bridge is checking this annotation/setting prior to running the test. This results in:
* Tests not working as expected when `$this->expectNotToPerformAssertions()` is called during a test
* If this is being used to ensure that a test does not perform an assertion then due to the bridge the test will no longer be marked as risky because we call `$test->getTestResultObject()->beStrictAboutTestsThatDoNotTestAnything(false);`
Commits
-------
4ad12320cd [PhpUnitBridge] Fix tests with ``@doesNotPerformAssertions`` annotations
This PR was merged into the 4.4 branch.
Discussion
----------
[Cache] Check if phpredis version is compatible with stream parameter
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
If you use phpredis <5.3.0, you can't connect to Redis since symfony/cache 5.2.7
Fixes#41110
Commits
-------
841d85a7ce Check redis extension version
This PR was merged into the 4.4 branch.
Discussion
----------
[Translation] [CI] Set default locale for IdentityTranslatorTest
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix
| License | MIT
| Doc PR |
This will fix a few CI issues. Not sure if this is the correct fix.
Commits
-------
92a61b1cf6 [Translation] Set default locale for IdentityTranslatorTest
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Security] Update Russian translations
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#41064
| License | MIT
| Doc PR |
Translate to Russian
Commits
-------
965c6e4a2d [Security] Update Russian translations
This PR was merged into the 5.2 branch.
Discussion
----------
[Notifier] Fix return SentMessage then Messenger not used
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | --
| License | MIT
| Doc PR | --
https://github.com/symfony/symfony/pull/37748 Broke the Notifier when Transport not used.
Commits
-------
1245114257 [Notifier] Fix return SentMessage then Messenger not used
This PR was merged into the 4.4 branch.
Discussion
----------
[VarExporter] Add support of PHP enumerations
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#40237
| License | MIT
| Doc PR | _none_
Commits
-------
4b0f2997a5 [VarExporter] Add support of PHP enumerations
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Security] Added missing Japanese translations
| Q | A
| ------------- | ---
| Branch? | 4.4<!-- see below -->
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#41052 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | N/A <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/releases):
- Always add tests and ensure they pass.
- Never break backward compatibility (see https://symfony.com/bc).
- Bug fixes must be submitted against the lowest maintained branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too.)
- Features and deprecations must be submitted against branch 5.x.
- Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
-->
Added id19 and id20.
The indentation for id17 and id18 was incorrect, so I fixed it.
I hope it helps you :)
Commits
-------
26cd193085 [Security] Added missing Japanese translations