Commit Graph

12909 Commits

Author SHA1 Message Date
Fabien Potencier
3ebe46684a minor #15974 [Security] fix tests for the AbstractVoter class (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Security] fix tests for the `AbstractVoter` class

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15961, #15968
| License       | MIT
| Doc PR        |

* The `LegacyAbstractVoterTest` class is not needed anymore, tests have
  been moved to the `AbstractVoterTest` class tagging them with the
  legacy group.
* Tests are applied on `stdClass` object instances. Thus, the legacy
  voter fixture class must not support `AbstractVoterTest_Object`
  instances, but support `stdClass` objects instead.
* Remove a test that checked for a `BadMethodCallException` being
  thrown. This seems to have been added accidentally in #15961.

Commits
-------

9fe3b76 fix tests for the `AbstractVoter` class
2015-09-28 21:48:24 +02:00
Christian Flothmann
cdf1f00ed1 [Console] do not make the getHelp() method smart 2015-09-28 20:36:38 +02:00
Tobias Schultze
f1c7c657a7 remove api tags from code 2015-09-28 19:11:22 +02:00
Fabien Potencier
8b8e7bb281 feature #15963 added logging of unused tags (Marmelatze, fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

added logging of unused tags

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #11511, #11744
| License       | MIT
| Doc PR        | -

This is the same as #11744 but with some minor tweaks and some unit tests for the compiler pass.

Commits
-------

95c9f50 added some tests
d3271e1 missing tags in whitelist
f51fe4a [FrameworkBundle] [DependencyInjection] added logging of unused tags during container compilation
2015-09-28 18:44:32 +02:00
Fabien Potencier
95c9f500e9 added some tests 2015-09-28 18:42:41 +02:00
Christian Flothmann
9fe3b7697b fix tests for the AbstractVoter class
* The `LegacyAbstractVoterTest` class is not needed anymore, tests have
  been moved to the `AbstractVoterTest` class tagging them with the
  legacy group.
* Tests are applied on `stdClass` object instances. Thus, the legacy
  voter fixture class must not support `AbstractVoterTest_Object`
  instances, but support `stdClass` objects instead.
2015-09-28 18:17:14 +02:00
Christophe Coevoet
9e51279b7f [CssSelector] Tag all internal classes as internal ones
All these classes are meant to be considered as an implementation
detail. A normal usage of the component does not require to deal with
them at all.
2015-09-28 16:03:26 +02:00
Christophe Coevoet
f4563c39ce Add a non-static API for the CssSelector component 2015-09-28 16:03:26 +02:00
Tobias Schultze
03a63dbc14 [PropertyAccess] fix cs 2015-09-28 14:41:55 +02:00
Fabien Potencier
826863d296 minor #15949 use try-finally when possible (Tobion)
This PR was merged into the 3.0-dev branch.

Discussion
----------

use try-finally when possible

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | I hope
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Found those with regex `catch \(\\Exception[^\}]+throw \$`

Commits
-------

49edef2 use try-finally when possible
2015-09-28 14:14:09 +02:00
Tobias Schultze
49edef252b use try-finally when possible 2015-09-28 14:06:46 +02:00
Fabien Potencier
7d7e07fefa feature #14602 [2.8] [Ldap] Added support for LDAP (New Component + integration in the Security Component). (csarrazi, lyrixx)
This PR was merged into the 2.8 branch.

Discussion
----------

[2.8] [Ldap] Added support for LDAP (New Component + integration in the Security Component).

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | not yet
| Fixed tickets | -
| License       | MIT
| Doc PR        | not yet

Current state:

- [x] Implement logic
- [x] Post-review tuning and stabilization
- [x] Fix tests

This PR is a follow-up to #5189, which was in a stand-still for a few years now. It tries to fix the remaining issues which were mentioned in the discussion.

There are still a few issues with the PR, as it is. For example, it introduces two new firewall factories, whereas the base factories (`form_login` and `http_basic`) could simply introduce new configuration options.

Also, for a user to use an LDAP server as an authentication provider, he first needs to define a service which should be an instance of `Symfony\Component\Security\Ldap\Ldap`.

For example:

```yml
services:
    my_ldap:
        class: Symfony\Component\Security\Ldap\Ldap
        arguments: [ "ldap.mydomain.tld" ]
```

Then, in `security.yml`, this service can be used in both the user provider and the firewalls:

```yml
security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        ldap_users:
            ldap:
                service: my_ldap
                base_dn: dc=MyDomain,dc=tld
                search_dn: CN=My User,OU=Users,DC=MyDomain,DC=tld
                search_password: p455w0rd
                filter: (sAMAccountName={username})
                default_roles: ROLE_USER

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        demo_login:
            pattern:  ^/login$
            security: false
        api:
            provider: ldap_users
            stateless: true
            pattern:    ^/api
            http_basic_ldap:
                service: my_ldap
                dn_string: "{username}@MYDOMAIN"
        demo_secured_area:
            provider: ldap_users
            pattern:    ^/
            logout:
                path:   logout
                target: login
            form_login_ldap:
                service: my_ldap
                dn_string: CN={username},OU=Users,DC=MyDomain,DC=tld
                check_path: login_check
                login_path: login
```

Commits
-------

60b9f2e Implemented LDAP authentication and LDAP user provider
1c964b9 Introducing the LDAP component
2015-09-28 13:32:19 +02:00
Fabien Potencier
be729e39e8 [Finder] removed obsolete code 2015-09-28 13:17:06 +02:00
Fabien Potencier
98287265a3 Merge branch '2.8'
* 2.8:
  [Finder] simplified code
  Fix tests in 2.8
  [Validator] Sync polish translation file
  Adding a class to make it easier to set custom authentication error messages
  Readd the correct tests
2015-09-28 13:14:38 +02:00
Fabien Potencier
779d6dc7f4 feature #15962 [Finder] simplified code (fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

[Finder] simplified code

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

4fa3eaf [Finder] simplified code
2015-09-28 13:14:02 +02:00
Grégoire Pineau
60b9f2e7ec Implemented LDAP authentication and LDAP user provider 2015-09-28 13:12:05 +02:00
Charles Sarrazin
1c964b993f Introducing the LDAP component 2015-09-28 13:11:59 +02:00
Fabien Potencier
4fa3eaf0c2 [Finder] simplified code 2015-09-28 12:21:41 +02:00
Florian Pfitzer
f51fe4ac41 [FrameworkBundle] [DependencyInjection] added logging of unused tags during container compilation 2015-09-28 12:07:01 +02:00
Fabien Potencier
3765d8a01d bug #15799 [HttpFoundation] NativeSessionStorage regenerate method wrongly sets storage as started (iambrosi)
This PR was squashed before being merged into the 2.3 branch (closes #15799).

Discussion
----------

[HttpFoundation] NativeSessionStorage `regenerate` method wrongly sets storage as started

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

This PR fixes an error when regenerating session IDs for non-active sessions.
Right now, the session is flagged as _started_, no matter if the session ID was successfully regenerated or not, making the storage [unable to _start the session_](6393ec3169/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php (L130-L132)) later on.

This also fixes a future error with PHP 7, which throws an error if a regeneration is attempted for non-active sessions.

```
session_regenerate_id(): Cannot regenerate session id - session is not active
```

Commits
-------

8e6ef9c [HttpFoundation] NativeSessionStorage  method wrongly sets storage as started
2015-09-28 11:26:18 +02:00
Ismael Ambrosi
8e6ef9cb56 [HttpFoundation] NativeSessionStorage method wrongly sets storage as started 2015-09-28 11:26:16 +02:00
Fabien Potencier
8990968b01 minor #15434 [property-access] Improvement for Accessing Reference Chain (zerustech)
This PR was merged into the 2.7 branch.

Discussion
----------

[property-access] Improvement for Accessing Reference Chain

Improve performance for the following scenarios:

- Example 1:
```php
$a = array(
    'a' => array(
        'b' => array(
            'c' => 'old-value'
        )
    )
);
$pa->setValue($a, '[a][b][c]', 'new-value');
// The PropertyAccessor will try to set values for
// $a['a']['b']['c'], $a['a']['b'] and $a['a'],
// but in fact it may terminate the loop
// right after the value of $a[a][b][c] is set,
// because $a, $[a], $[a][b] and $[a][b][c]
// are all passed as reference - the reference chain is not broken.
```

- Example 2
```php
$b = array(
    'a' => array(
        'b' => array(
            'c' => 'old-value'
        )
    )
)

$a = new Foo($b);
// In this example, the reference chain of $b is broken,
// because it's passed to $a.value as value
// But its elements are all passed as reference,
// so after setting the value for $b[a][b][c], there is no need
// to set value for $b[a][b] and $b[a]

$pa->setValue($a, 'value[a][b][c]', 'new-value');
```

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

e24a798 [property-access] Improvement for Accessing Reference Chain
2015-09-28 11:21:52 +02:00
MatTheCat
ed9c6103f8 [Twig][Bridge] force space between widget and label in checkbox_radio_label 2015-09-28 11:09:38 +02:00
Julia
5423ba0974 Updated default German IBAN validation message
IBAN is an acronym. The term 'IBAN-Kontonummer' is redundant, since the 'AN' part (Account Number) already translates to 'Kontonummer'. It's like saying 'International Bank Account Number Account Number'.
2015-09-28 10:52:29 +02:00
lashae
f99f40eb65 Fixed incorrect and inconsistent translations
"Fiş" is a correct translation for "token", however "bilet" is also used, I fixed that inconsistency. Moreover, "kimlik bilgileri" is a better translation for "credentials" than "girdiler". "Girdiler" is the translation of "inputs", so I fixed sentences with "credentials". "Hesap engellenmiş" is better than "Hesap devre dışı bırakılmış" for "Account is disabled.". "Digest nonce has expired" can be translated better as "Derleme zaman aşımına uğradı." because "Derleme zaman aşımı gerçekleşti" has a confirmation sense like user requested it to expire and it has expired.

References:

token: http://tureng.com/search/token (3rd entry)
credentials: http://www2.zargan.com/tr/q/credentials-ceviri-nedir (1st entry)
disable: http://tureng.com/search/disable (15th entry)
2015-09-28 10:50:45 +02:00
Wouter J
20c90f5891 Fix tests in 2.8 2015-09-28 10:20:11 +02:00
Joseph Bielawski
7a88c37743 [Validator] Sync polish translation file 2015-09-28 09:59:13 +02:00
Brayden Williams
95417f6ddd Make Proper English 2015-09-28 09:26:52 +02:00
Fabien Potencier
156368fa43 feature #15882 Easier Custom Authentication errors (weaverryan)
This PR was merged into the 2.8 branch.

Discussion
----------

Easier Custom Authentication errors

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | not yet

This makes failing authentication with a custom message much easier:

```php
throw CustomAuthenticationException::createWithSafeMessage(
    'That was a ridiculous username'
);

// or
$e = new CustomAuthenticationException();
$e->setSafeMessage('That was a ridiculous username');

throw $e;
```

Currently, to do this, you'd need to create a new sub-class of `AuthenticationException`, which is way more work than it needs to be. The original design was so that all messages exposed are safe, which is why I've named the methods like I have.

Thanks!

Commits
-------

d7c1463 Adding a class to make it easier to set custom authentication error messages
2015-09-28 09:00:41 +02:00
Fabien Potencier
4021353591 Merge branch '2.7' into 2.8
* 2.7:
  Readd the correct tests
2015-09-28 08:58:50 +02:00
Fabien Potencier
df7a89f171 minor #15942 [Security] Improve AbstractVoter tests (WouterJ)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] Improve AbstractVoter tests

Applying the improved tests from https://github.com/symfony/symfony/pull/15932 into the oldest possible branch.

Merge conflicts from 2.7 into 2.8 caused by this PR do not need to be done carefully, I'll create a new PR for 2.8 updating the tests as soon as these changes are merged up.

| Q             | A
| ------------- | ---
| Fixed tickets | -
| License       | MIT

Commits
-------

5ff741d Readd the correct tests
2015-09-28 08:54:42 +02:00
Fabien Potencier
474772c708 Merge branch '2.8'
* 2.8:
  [Security] fixed composer.json
  don't rely on internal sort implementation in test
  Deprecate methods inherited from SplObjectStorage
2015-09-28 08:51:25 +02:00
Fabien Potencier
3a665af934 Merge branch '2.7' into 2.8
* 2.7:
  [Security] fixed composer.json
2015-09-28 08:51:00 +02:00
Fabien Potencier
8a1f0a0501 [Security] fixed composer.json 2015-09-28 08:50:50 +02:00
Ryan Weaver
d7c14632f7 Adding a class to make it easier to set custom authentication error messages 2015-09-27 16:39:53 -04:00
Fabien Potencier
4b942741e5 minor #15940 [Console] don't rely on internal sort implementation om test (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Console] don't rely on internal sort implementation om test

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

PHP does not guarantuee how array elements with the same value will be
sorted when applying `asort()`. Since all namespaces used in the test
produce the same Levenshtein value, we should only check for presence of
these namespaces instead of comparing the exact order.

Commits
-------

3011fa0 don't rely on internal sort implementation in test
2015-09-27 16:47:35 +02:00
Wouter J
5ff741de8a Readd the correct tests 2015-09-27 16:25:18 +02:00
Christian Flothmann
3011fa0ea9 don't rely on internal sort implementation in test
PHP does not guarantuee how array elements with the same value will be
sorted when applying `asort()`. Since all namespaces used in the test
produce the same Levenshtein value, we should only check for presence of
these namespaces instead of comparing the exact order.
2015-09-27 15:45:05 +02:00
Fabien Potencier
7f829b8d55 bug #15533 [Console] Fix input validation when required arguments are missing (jakzal)
This PR was merged into the 2.3 branch.

Discussion
----------

[Console] Fix input validation when required arguments are missing

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

The rule that was here in place previously only works when arguments are passed from command line, as in command line there is no way of skipping an argument. The rule does not work for arguments set on the Input after a command is run.

Commits
-------

4982b02 [Console] Add the command name to input arguments if it's missing
f12a4c1 [Console] Fix input validation when required arguments are missing
2015-09-27 15:31:56 +02:00
Christophe Coevoet
997c650c1c Deprecate methods inherited from SplObjectStorage 2015-09-27 15:06:19 +02:00
ogizanagi
d961f7f344 [Config] Fix ArrayNode extra keys "ignore" and "remove" behaviors 2015-09-27 12:15:37 +02:00
Fabien Potencier
8d7b498665 Merge branch '2.8'
* 2.8: (28 commits)
  Detect Mintty for color support on Windows
  Detect Mintty for color support on Windows
  [WebProfilerBundle] Fix search button click listener
  [Form][Type Date/Time] added choice_translation_domain option.
  Massively simplifying the BC and deprecated-throwing code thanks to suggestions by stof in #15870
  Making all "debug" messages use the debug router
  Making GuardTokenInterface extend TokenInterface
  Updating behavior to not continue after an authenticator has set the response
  Add a group for tests of the finder against the FTP server
  Fix trigger_error calls
  Fix legacy security tests
  tweaking message related to configuration edge case that we want to be helpful with
  Minor tweaks - lowering the required security-http requirement and nulling out a test field
  Fix license headers
  Fix license headers
  Fix license headers
  Ensure the ClockMock is loaded before using it in the testsuite
  Allow serializer 3.0 in the PropertyInfo component
  Add the replace rules for the security-guard component
  Forbid serializing a Crawler
  ...
2015-09-27 12:13:28 +02:00
Fabien Potencier
58ed0762e9 Merge branch '2.7' into 2.8
* 2.7:
  Detect Mintty for color support on Windows
  Detect Mintty for color support on Windows
  Add a group for tests of the finder against the FTP server
  Fix license headers
  Forbid serializing a Crawler
  Fix phpdoc block of NativeSessionStorage class
  Added exception when setAutoInitialize is called when locked
  [FrameworkBundle] Advanced search templates of bundles
  [Security] Allow user providers to be defined in many files
  Use random_bytes function if it is available for random number generation
2015-09-27 12:09:46 +02:00
Christophe Coevoet
ea2bd2a0a2 Detect Mintty for color support on Windows
Mintty is now the default terminal in GitBash, and it supports ANSI
colors without the need of ANSICON (it even supports 256 colors rather
than the 16 colors supported by ANSICON).
2015-09-27 12:08:51 +02:00
Fabien Potencier
3ba54c1c31 Merge branch '2.3' into 2.7
* 2.3:
  Detect Mintty for color support on Windows
  Add a group for tests of the finder against the FTP server
  Fix license headers
  Forbid serializing a Crawler
  Fix phpdoc block of NativeSessionStorage class
  Added exception when setAutoInitialize is called when locked
  [FrameworkBundle] Advanced search templates of bundles
  [Security] Allow user providers to be defined in many files
  Use random_bytes function if it is available for random number generation
2015-09-27 12:08:38 +02:00
Christophe Coevoet
12743d1035 Detect Mintty for color support on Windows
Mintty is now the default terminal in GitBash, and it supports ANSI
colors without the need of ANSICON (it even supports 256 colors rather
than the 16 colors supported by ANSICON).
2015-09-27 11:58:50 +02:00
Fabien Potencier
06c14a2653 bug #15925 Updating behavior to not continue after an authenticator has set the response (weaverryan)
This PR was merged into the 2.8 branch.

Discussion
----------

Updating behavior to not continue after an authenticator has set the response

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/14673/files#r40492765
| License       | MIT
| Doc PR        | n/a

This mirrors the behavior in core: *if* a listener sets a response (on success or failure),
then the other listeners are not called. But if a response is *not* set
(which is sometimes the case for success, like in BasicAuthenticationListener),
then the other listeners are called, and can even fail.

It's all a bit of an edge-case, as only one authenticator (like authentication listener) would normally be doing any work on a request, but I think matching the other listeners (since I'm not aware of anyone having issues with its behavior) is best.

Commits
-------

5fa2684 Making all "debug" messages use the debug router
f403444 Updating behavior to not continue after an authenticator has set the response
2015-09-27 11:53:56 +02:00
Fabien Potencier
8df5d94158 minor #15924 Add a group for tests of the finder against the FTP server (stof)
This PR was merged into the 2.3 branch.

Discussion
----------

Add a group for tests of the finder against the FTP server

This allows to skip them easily when running the testsuite, as they represent a significant part of the testsuite time. These 2 tests together represent 42% of the execution time of the testsuite (all the time being spent connecting to the FTP server).

I also remove the usage of the data provider as a data provider with a single dataset (and used only partially) only makes tests harder to read. and does not save any duplication.

Commits
-------

51147e3 Add a group for tests of the finder against the FTP server
2015-09-27 11:50:37 +02:00
Fabien Potencier
1e65f7189f bug #15921 Abstract voter tweaks (weaverryan)
This PR was merged into the 2.8 branch.

Discussion
----------

Abstract voter tweaks

| Q             | A
| ------------- | ---
| Bug fix?      | yes (a little)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Based on suggestions from stof in #15870, this simplifies the BC and deprecation throwing code. This also adds a BadMethodCallException in case the user doesn't override `isGranted` *or* `voteOnAttribute`, because that's just plain wrong (as is calling `isGranted()` on the parent class directly, since that was formerly abstract).

Commits
-------

c03f5c2 Massively simplifying the BC and deprecated-throwing code thanks to suggestions by stof in #15870
2015-09-27 11:19:34 +02:00
Fabien Potencier
709cc13887 bug #15927 Making GuardTokenInterface extend TokenInterface (weaverryan)
This PR was merged into the 2.8 branch.

Discussion
----------

Making GuardTokenInterface extend TokenInterface

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15884
| License       | MIT
| Doc PR        | n/a

See #15884

Commits
-------

7f04fbb Making GuardTokenInterface extend TokenInterface
2015-09-27 11:18:08 +02:00
Fabien Potencier
9ec98c2a2c minor #15901 [Validator] Add Hungarian translation for the BIC constraint (1ed)
This PR was merged into the 2.8 branch.

Discussion
----------

[Validator] Add Hungarian translation for the BIC constraint

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

Commits
-------

f26425b [Validator] Add Hungarian translation for the BIC constraint
2015-09-27 11:10:04 +02:00
Fabien Potencier
30fc4eea13 feature #15905 [3.0][Config] Removed isFresh() related functionality (WouterJ)
This PR was merged into the 3.0-dev branch.

Discussion
----------

[3.0][Config] Removed isFresh() related functionality

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

Commits
-------

4cdae98 Removed Resource#isFresh() related functionality
2015-09-27 11:06:17 +02:00
Fabien Potencier
9cf4ab74d3 minor #15920 Guard minor tweaks (weaverryan)
This PR was merged into the 2.8 branch.

Discussion
----------

Guard minor tweaks

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Various completely minor things, most from suggestions on #14673

Commits
-------

869d5a7 tweaking message related to configuration edge case that we want to be helpful with
da4758a Minor tweaks - lowering the required security-http requirement and nulling out a test field
2015-09-27 10:55:21 +02:00
Fabien Potencier
92a9e22b48 bug #15906 Forbid serializing a Crawler (stof)
This PR was merged into the 2.3 branch.

Discussion
----------

Forbid serializing a Crawler

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Unserializing a Crawler instance creates DOM elements in an invalid state, making the Crawler unusable.
While working on #15849, I figured out that DomCrawler actually inherits ``Serializable`` from its ``SplObjectStorage`` parent, and so I tried to serialize and unserialize one. The answer is that it does not work. This is what happens when trying to call ``parents`` on it for instance:

```
Symfony\Component\DomCrawler\Crawler::parents(): Invalid State Error
```

Commits
-------

12733cb Forbid serializing a Crawler
2015-09-27 10:54:00 +02:00
Fabien Potencier
936e1b3ac2 minor #15912 Allow serializer 3.0 in the PropertyInfo component (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Allow serializer 3.0 in the PropertyInfo component

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

This makes the component consistent with other components.

Commits
-------

0d72411 Allow serializer 3.0 in the PropertyInfo component
2015-09-27 10:49:22 +02:00
Fabien Potencier
15326ad1af minor #15910 Add the replace rules for the security-guard component (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Add the replace rules for the security-guard component

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

The update of composer replacements was forgotten in #14673

Commits
-------

5ef8abc Add the replace rules for the security-guard component
2015-09-27 10:47:35 +02:00
Tobias Schultze
c23444985b [Console] remove deprecated shell 2015-09-27 02:08:47 +02:00
Tobias Schultze
3909460c04 feature #15301 [Form][Type Date/Time] added choice_translation_domain option. (aitboudad)
This PR was squashed before being merged into the 2.8 branch (closes #15301).

Discussion
----------

[Form][Type Date/Time] added choice_translation_domain option.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |  #15222 and #15298
| License       | MIT

- [x] add test

Commits
-------

1f3af26 [Form][Type Date/Time] added choice_translation_domain option.
2015-09-27 01:13:22 +02:00
Abdellatif Ait boudad
1f3af26e5c [Form][Type Date/Time] added choice_translation_domain option. 2015-09-27 01:13:15 +02:00
Ryan Weaver
c03f5c2ad4 Massively simplifying the BC and deprecated-throwing code thanks to suggestions by stof in #15870 2015-09-26 17:07:41 -04:00
Christophe Coevoet
e610b416c9 Merge branch '2.7' into 2.8
* 2.7:
  Fix license headers
  Ensure the ClockMock is loaded before using it in the testsuite
  Fix with_minutes option in time widget
  Fixed properties not explicitily declared
2015-09-26 21:48:07 +02:00
Christophe Coevoet
05fc646142 minor #15913 Ensure the ClockMock is loaded before using it in the testsuite (stof)
This PR was merged into the 2.7 branch.

Discussion
----------

Ensure the ClockMock is loaded before using it in the testsuite

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

The ``ProgressBarTest`` is passing in 2.7 and 2.8 on Travis only because the ``LegacyProgressHelperTest`` is running first, and so the clock mock is loaded. It would not pass when running it standalone. And the testsuite is currently broken in the master branch because LegacyProgressHelperTest is gone there, and so the clock mock was not loaded before the test.

Commits
-------

0e5aa0e Ensure the ClockMock is loaded before using it in the testsuite
2015-09-26 21:30:33 +02:00
Christophe Coevoet
a31dfa6f4b minor #15923 Fix legacy security tests (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Fix legacy security tests

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

when merging legacy test classes together in #15893, use statements where not copied, making the tests fail.

Commits
-------

8b615bb Fix legacy security tests
2015-09-26 21:22:35 +02:00
Ryan Weaver
5fa2684273 Making all "debug" messages use the debug router
Only the "auth success" and "auth failed" messages remain at info. That's
consistent with AbstractAuthenticationListener
2015-09-26 14:16:48 -04:00
Ryan Weaver
7f04fbb078 Making GuardTokenInterface extend TokenInterface
This makes some of our type-hints more honest: i.e. where we look for a GuardTokenInterface,
but really also expect it to implement TokenInterface.
2015-09-26 14:10:49 -04:00
Ryan Weaver
f403444cc0 Updating behavior to not continue after an authenticator has set the response
This mirrors the behavior in core: *if* a listener sets a response (on success or failure),
then the other listeners are not called. But if a response is *not* set
(which is sometimes the case for success, like in BasicAuthenticationListener),
then the other listeners are called, and can even fail.
2015-09-26 12:34:14 -04:00
WouterJ
4cdae9816e Removed Resource#isFresh() related functionality 2015-09-26 17:53:58 +02:00
Christophe Coevoet
51147e3aff Add a group for tests of the finder against the FTP server
This allows to skip them easily when running the testsuite, as they
represent a significant part of the testsuite time.
2015-09-26 17:47:39 +02:00
WouterJ
69e80beaa0 Fix trigger_error calls 2015-09-26 17:42:54 +02:00
Christophe Coevoet
8b615bb4b4 Fix legacy security tests 2015-09-26 17:38:37 +02:00
Ryan Weaver
da4758a2af Minor tweaks - lowering the required security-http requirement and nulling out a test field 2015-09-26 10:16:59 -04:00
Gábor Egyed
1701708c48 Fix license headers 2015-09-26 14:22:32 +02:00
Gábor Egyed
db8239ffab Fix license headers 2015-09-26 14:15:17 +02:00
Gábor Egyed
b03bcb34ec Fix license headers 2015-09-26 13:59:49 +02:00
Christophe Coevoet
0e5aa0eebf Ensure the ClockMock is loaded before using it in the testsuite 2015-09-26 13:03:21 +02:00
Christophe Coevoet
0d72411017 Allow serializer 3.0 in the PropertyInfo component
This makes the component consistent with other components.
2015-09-26 12:59:51 +02:00
Christophe Coevoet
0161212c1e Update the branch alias for new components in their 3.0 branch 2015-09-26 12:58:17 +02:00
Christophe Coevoet
9058f4683e Merge branch '2.8'
* 2.8:
  [BrowserKit] Added isFollowingRedirects and getMaxRedirects methods
  [PropertyInfo] Import the component
  deprecated the Shell Console class
  Deprecate ResourceInterface::getResource()
  Merged LegacySecurityContext tests
  [WebProfilerBundle] Added collapsed sidebar on small screens
2015-09-26 12:57:11 +02:00
Christophe Coevoet
5ef8abc916 Add the replace rules for the security-guard component 2015-09-26 12:41:38 +02:00
Christophe Coevoet
12733cba00 Forbid serializing a Crawler
Unserializing a Crawler instance creates DOM elements in an invalid
state, making the Crawler unusable.
2015-09-26 12:01:36 +02:00
Gábor Egyed
f26425bd91 [Validator] Add Hungarian translation for the BIC constraint 2015-09-26 11:13:29 +02:00
Diego Campoy
f181ea89e3 Fix phpdoc block of NativeSessionStorage class 2015-09-26 10:28:37 +02:00
Joshua Thijssen
c269d6feda Added exception when setAutoInitialize is called when locked 2015-09-26 10:25:00 +02:00
Gintautas Miselis
b47560773e [BrowserKit] Added isFollowingRedirects and getMaxRedirects methods 2015-09-26 10:21:42 +02:00
Fabien Potencier
4fcf136079 feature #15719 Deprecate ResourceInterface::getResource() (mpdude)
This PR was merged into the 2.8 branch.

Discussion
----------

Deprecate ResourceInterface::getResource()

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | n/a

The return value of this method does not make sense if you do not exactly know about the type of resource at hand. For example, it may be [an array](b49fa129bd/src/Symfony/Component/HttpKernel/Config/EnvParametersResource.php (L57)) or a [file path](87800ae47e/src/Symfony/Component/Config/Resource/FileResource.php (L51)).

As all usages of getResource() within Symfony are in tests of particular Resource implementations anyway, deprecating and later removing this method helps us with simplifying the ResourceInterface (https://github.com/symfony/symfony/issues/7176).

Commits
-------

87c0c7d Deprecate ResourceInterface::getResource()
2015-09-26 10:19:26 +02:00
Fabien Potencier
61550dc564 minor #15765 Fixed properties not explicitily declared (deguif)
This PR was merged into the 2.7 branch.

Discussion
----------

Fixed properties not explicitily declared

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | n/a
| License       | MIT

Commits
-------

d2b3fe4 Fixed properties not explicitily declared
2015-09-26 10:14:04 +02:00
Fabien Potencier
59ee12c234 feature #15858 [PropertyInfo] Import the component (dunglas)
This PR was squashed before being merged into the 2.8 branch (closes #15858).

Discussion
----------

[PropertyInfo] Import the component

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | symfony/symfony-docs#5717

As discussed with @fabpot (see #14844), this PR moves [dunglas/php-property-info](https://github.com/dunglas/php-property-info) under the Symfony umbrella.

Rationale behind this new component (extracted from README.md):

PHP doesn't support explicit type definition. This is annoying, especially when doing meta programming.
Various libraries including but not limited to Doctrine ORM and the Symfony Validator provide their own type managing
system.
This library extracts various information including the type and documentation from PHP class property from metadata of popular sources:

* Setter method with type hint
* PHPDoc DocBlock
* Doctrine ORM mapping (annotation, XML, YML or custom format)
* PHP 7 scalar typehint and return type
* Serializer metadata

**Usage:**

```php
<?php

// Use Composer autoload
require 'vendor/autoload.php';

use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\Id;
use Symfony\Component\PropertyInfo\Extractors\DoctrineExtractor;
use Symfony\Component\PropertyInfo\Extractors\PhpDocExtractor;
use Symfony\Component\PropertyInfo\Extractors\ReflectionExtractor;
use Symfony\Component\PropertyInfo\PropertyInfo;

/**
 * @Entity
 */
class MyTestClass
{
    /**
     * @Id
     * @Column(type="integer")
     */
    public $id;
    /**
     * This is a date (short description).
     *
     * With a long description.
     *
     * @var \DateTime
     */
    public $foo;
    private $bar;

    public function setBar(\SplFileInfo $bar)
    {
        $this->bar = $bar;
    }
}

// Doctrine initialization (necessary only to use the Doctrine Extractor)
$config = Setup::createAnnotationMetadataConfiguration([__DIR__], true);
$entityManager = EntityManager::create([
    'driver' => 'pdo_sqlite',
    // ...
], $config);

$doctrineExtractor = new DoctrineExtractor($entityManager->getMetadataFactory());
$phpDocExtractor = new PhpDocExtractor();
$reflectionExtractor = new ReflectionExtractor();

$propertyInfo = new PropertyInfo(
    array($reflectionExtractor),
    array($doctrineExtractor, $phpDocExtractor, $reflectionExtractor),
    array($phpDocExtractor),
    array($reflectionExtractor)
);

var_dump($propertyInfo->getProperties('MyTestClass'));
var_dump($propertyInfo->getTypes('MyTestClass', 'foo'));
var_dump($propertyInfo->getTypes('MyTestClass', 'id'));
var_dump($propertyInfo->getTypes('MyTestClass', 'bar'));
var_dump($propertyInfo->isReadable('MyTestClass', 'id'));
var_dump($propertyInfo->isReadable('MyTestClass', 'bar'));
var_dump($propertyInfo->isWritable('MyTestClass', 'foo'));
var_dump($propertyInfo->isWritable('MyTestClass', 'bar'));
var_dump($propertyInfo->getShortDescription('MyTestClass', 'foo'));
var_dump($propertyInfo->getLongDescription('MyTestClass', 'foo'));
```

Output:

```
array(3) {
  [0] =>
  string(2) "id"
  [1] =>
  string(3) "foo"
  [2] =>
  string(3) "Bar"
}
array(1) {
  [0] =>
  class Symfony\Component\PropertyInfo\Type#36 (6) {
    private $builtinType =>
    string(6) "object"
    private $nullable =>
    bool(false)
    private $class =>
    string(8) "DateTime"
    private $collection =>
    bool(false)
    private $collectionKeyType =>
    NULL
    private $collectionValueType =>
    NULL
  }
}
array(1) {
  [0] =>
  class Symfony\Component\PropertyInfo\Type#36 (6) {
    private $builtinType =>
    string(3) "int"
    private $nullable =>
    bool(false)
    private $class =>
    NULL
    private $collection =>
    bool(false)
    private $collectionKeyType =>
    NULL
    private $collectionValueType =>
    NULL
  }
}
array(1) {
  [0] =>
  class Symfony\Component\PropertyInfo\Type#245 (6) {
    private $builtinType =>
    string(6) "object"
    private $nullable =>
    bool(false)
    private $class =>
    string(11) "SplFileInfo"
    private $collection =>
    bool(false)
    private $collectionKeyType =>
    NULL
    private $collectionValueType =>
    NULL
  }
}
bool(true)
bool(false)
bool(true)
bool(true)
string(35) "This is a date (short description)."
string(24) "With a long description."
```

Commits
-------

f1eb185 [PropertyInfo] Import the component
2015-09-26 09:46:23 +02:00
Kévin Dunglas
f1eb185236 [PropertyInfo] Import the component 2015-09-26 09:46:20 +02:00
Fabien Potencier
25dccf1bb5 minor #15875 Use random_bytes function if it is available for random number generation (pierredup)
This PR was merged into the 2.3 branch.

Discussion
----------

Use random_bytes function if it is available for random number generation

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

This is an attempt to use the random_bytes function when generating secure random numbers. This function is included in PHP 7 or through the "paragonie/random_compat" library.

This PR only adds support to use the function if it is available. Changes that can be added is to add a hard dependency on the paragonie/random_compat library, so all current functionality can be deprecated.

Commits
-------

6a217dc Use random_bytes function if it is available for random number generation
2015-09-26 09:44:41 +02:00
Fabien Potencier
8209754e4e minor #15893 Merged LegacySecurityContext tests (WouterJ)
This PR was merged into the 2.8 branch.

Discussion
----------

Merged LegacySecurityContext tests

I've no idea why this test was introduced in the wrong namespace in 2.8, but I merged it in the correct test case now.

Commits
-------

2c4da3c Merged LegacySecurityContext tests
2015-09-26 09:34:51 +02:00
Fabien Potencier
7079aa9e96 feature #15892 deprecated the Shell Console class (fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

deprecated the Shell Console class

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | one of #11742
| License       | MIT
| Doc PR        | n/a

Commits
-------

1c17928 deprecated the Shell Console class
2015-09-26 09:27:31 +02:00
Fabien Potencier
1c17928e58 deprecated the Shell Console class 2015-09-26 09:26:13 +02:00
Fabien Potencier
967c0e439a Merge branch '2.8'
* 2.8: (23 commits)
  [Validator] added BIC (SWIFT-BIC) validation constraint
  [TwigBridge] Foundation form layout integration
  [Security] Deprecated supportsAttribute and supportsClass methods
  bumped Symfony version to 2.7.6
  updated VERSION for 2.7.5
  updated CHANGELOG for 2.7.5
  bumped Symfony version to 2.3.34
  updated VERSION for 2.3.33
  update CONTRIBUTORS for 2.3.33
  updated CHANGELOG for 2.3.33
  [Console] Fix transient HHVM test
  [OptionsResolver] Fix catched exception along the dependency tree mistakenly detects cyclic dependencies
  fixed tests
  [DI] Support deprecated definitions in decorators
  [DI] Allow to change the deprecation message in Definition
  [DI] Trigger a deprecated error on the container builder
  [DI] Dump the deprecated status
  [DI] Supports the deprecated tag in loaders
  [DI] Add a deprecated status to definitions
  Fixing test locations
  ...
2015-09-26 09:20:46 +02:00
Fabien Potencier
06b4938046 feature #15519 [Validator] added BIC (SWIFT-BIC) validation constraint (mvhirsch)
This PR was squashed before being merged into the 2.8 branch (closes #15519).

Discussion
----------

[Validator] added BIC (SWIFT-BIC) validation constraint

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/5623

I've added the BIC validator, because we do often need validation for IBAN and BIC values. Since the IBAN validation was already included into Symfony, I was asking myself: why not contribute my  BIC validator to the community? So here we go ...

It depends on ISO 9362 as described on [Wikipedia](https://en.wikipedia.org/wiki/ISO_9362#Structure). It validates the structure based on alphabetic/alphanumeric values and the value's length.

Todo-list:
- [x] submit changes to the documentation

Commits
-------

d6471b3 [Validator] added BIC (SWIFT-BIC) validation constraint
2015-09-25 14:16:01 +02:00
Michael Hirschler
d6471b3338 [Validator] added BIC (SWIFT-BIC) validation constraint 2015-09-25 14:15:58 +02:00
Fabien Potencier
6f7aae991c feature #15151 [Security] Deprecated supportsAttribute and supportsClass methods (WouterJ)
This PR was squashed before being merged into the 2.8 branch (closes #15151).

Discussion
----------

[Security] Deprecated supportsAttribute and supportsClass methods

These methods aren't used at all in a Symfony application and don't make sense to use in the application. They are only used internally in the voters. This means the voter interface can be made much easier.

I'm not sure how we do these deprecations, should we remove the methods from the interface now already? Also, I don't think it's possible to trigger deprecation notices for the voter methods?

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | one of #11742
| License       | MIT
| Doc PR        | -

Abstract Voter
---

There is one remaining question about the abstract voter. This currently has abstract `getSupportedAttributes()` and `getSupportedClass()` methods. One of the reasons to remove the methods for the interface was that these methods are not flexible. Does it make sense to deprecate these methods as well and replace them by an abstract `protected vote(array $attributes, $class)` method in the `AbstractVoter` (which is called from `AbstractVoter#vote()`) ?

Commits
-------

6588708 [Security] Deprecated supportsAttribute and supportsClass methods
2015-09-25 13:44:05 +02:00
WouterJ
6588708144 [Security] Deprecated supportsAttribute and supportsClass methods 2015-09-25 13:42:48 +02:00
Fabien Potencier
22100a2ca6 bumped Symfony version to 2.7.6 2015-09-25 13:39:10 +02:00
Fabien Potencier
619528a274 updated VERSION for 2.7.5 2015-09-25 13:16:52 +02:00
Fabien Potencier
6200eb5053 feature #15491 Add support for deprecated definitions (Taluu)
This PR was merged into the 2.8 branch.

Discussion
----------

Add support for deprecated definitions

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #14307
| License       | MIT
| Doc PR        | symfony/symfony-docs#5689

This add a sort of marker in the Definition of a service that marks it as "deprecated". This is useful when we have a bunch of service and a bunch of where it is used, and we need to track if there are any uses before removing it (in a later version or right now). I was not sure if the `trigger_error` would be enough, or if I should log them instead.

I'm first gathering some feedback, and then I'll try to update the doc.

I was not sure if it should target 2.8 or master (3.0) though.

What's left ?
==========
- [x] Make a POC
- [x] Gather some feedbacks
- [x] Dump the tag in XML, YAML and PHP
- [x] Load the definition from XML, YAML and PHP
- [x] Fix some forgotten things such as the key existence check
- [x] Work on inline services in the php dumper
- [x] Handle deprecations for decorators
- ~~Possibility to overwrite the deprecated flag in the decorators in `XmlFileLoader` ?~~ Nope, and this behavior is also ported to the `YamlFileLoader`.

Commits
-------

83f4e9c [DI] Support deprecated definitions in decorators
0b3d0a0 [DI] Allow to change the deprecation message in Definition
954247d [DI] Trigger a deprecated error on the container builder
2f37cb1 [DI] Dump the deprecated status
8f6c21c [DI] Supports the deprecated tag in loaders
4b6fab0 [DI] Add a deprecated status to definitions
2015-09-25 13:07:29 +02:00