Commit Graph

22416 Commits

Author SHA1 Message Date
Fabien Potencier
181d470399 feature #15919 [Form] Guess currency field based on validator constraint (enumag)
This PR was submitted for the 2.3 branch but it was merged into the 2.8 branch instead (closes #15919).

Discussion
----------

[Form] Guess currency field based on validator constraint

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

Commits
-------

2993b00 [Form] Guess currency field based on validator constraint
2015-09-28 22:37:20 +02:00
Jáchym Toušek
2993b0092e [Form] Guess currency field based on validator constraint 2015-09-28 22:37:19 +02:00
Fabien Potencier
47d001e821 feature #15934 Add a non-static API for the CssSelector component (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

Add a non-static API for the CssSelector component

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

This implements a non-static API for the CssSelector component.

I decided to keep the static API too, as it is convenient when you just need a one-shot conversion (if you need lots of conversions, keeping a reference to the Converter and all its internal object graph may be faster than releasing it all the time and rebuilding it).
I deprecated the global state to choose between HTML and XML conversion. The static API would always enable the HTML extension in 3.0. Dealing with XML would be done by using the Converter class.

A second commit also tags all internal classes of the component as ``@internal``, as there is really no reason for a user to deal with them (btw, we already considered them fully internal in the past, as we broke BC on them in a patch release to fix memory performance of the component in the past).

TODOs:

- [x] Validate whether we keep the static facade to the component
- [ ] send a PR on the documentation to document this new API.
- [x]  handle usage of the deprecated API in the DomCrawler testsuite

The DomCrawler component does not use the new API yet. I will do it in a separate PR, as distinguishing between HTML and XML modes for a crawler will be easier once I deprecate the possibility to load multiple documents (which I will do tomorrow).

Commits
-------

9e51279 [CssSelector] Tag all internal classes as internal ones
f4563c3 Add a non-static API for the CssSelector component
2015-09-28 22:26:21 +02:00
Fabien Potencier
8e1af88b02 feature #14235 [FrameworkBundle] Refactored assets:install command and apply Symfony styles (1ed)
This PR was submitted for the 2.7 branch but it was merged into the 2.8 branch instead (closes #14235).

Discussion
----------

[FrameworkBundle] Refactored assets:install command and apply Symfony styles

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

Replaces #13057

![screenshot from 2015-04-06 17 26 47](https://cloud.githubusercontent.com/assets/162986/7006783/242312f0-dc84-11e4-80ae-7d584ceae2f2.png)
![screenshot from 2015-04-06 17 26 16](https://cloud.githubusercontent.com/assets/162986/7006784/24237ff6-dc84-11e4-9678-ca5afe4b73fe.png)
![screenshot from 2015-04-09 10 24 59](https://cloud.githubusercontent.com/assets/162986/7063056/96c71baa-dea3-11e4-981c-a4ef4fa59cfb.png)
![screenshot from 2015-04-06 17 33 46](https://cloud.githubusercontent.com/assets/162986/7006782/2421e22c-dc84-11e4-9d1f-c1b91a7c0abe.png)
![screenshot from 2015-04-06 20 14 57](https://cloud.githubusercontent.com/assets/162986/7009308/a1aae2e2-dc99-11e4-9c00-c1f60bc55abf.png)

Commits
-------

8b7b251 [FrameworkBundle] Refactor assets:install command and apply SymfonyStyle
2015-09-28 22:07:39 +02:00
Gábor Egyed
8b7b2512fc [FrameworkBundle] Refactor assets:install command and apply SymfonyStyle 2015-09-28 22:07:38 +02:00
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
Fabien Potencier
0d71b1e9ee minor #15981 [WebProfilerBundle] reflect latest changes in test (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[WebProfilerBundle] reflect latest changes in test

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

In #15973, the `searchResultsAction()` of the `ProfilerController` was
updated to pass the current request to the rendered template. However,
this change was not reflected in the test thus letting it fail.

Commits
-------

ae283e8 [WebProfilerBundle] reflect latest changes in test
2015-09-28 21:47:16 +02:00
Christian Flothmann
ae283e80d1 [WebProfilerBundle] reflect latest changes in test
In #15973, the `searchResultsAction()` of the `ProfilerController` was
updated to pass the current request to the rendered template. However,
this change was not reflected in the test thus letting it fail.
2015-09-28 20:15:56 +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
Tobias Schultze
3c19ae066c bug #15973 [WebProfileBundle] fix missing request var in the 'last 10' panel (fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

[WebProfileBundle] fix missing request var in the 'last 10' panel

| 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

Commits
-------

b9100d3 [WebProfileBundle] fix missing request var in the 'last 10' panel
2015-09-28 17:36:55 +02:00
Fabien Potencier
b9100d3a3f [WebProfileBundle] fix missing request var in the 'last 10' panel 2015-09-28 16:54:55 +02:00
Fabien Potencier
634aafc3ac feature #15970 [TwigBundle] removed usage of Templating classes (fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

[TwigBundle] removed usage of Templating classes

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes (but frankly, I don't see how that would break anything out there)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

ff3c107 [TwigBundle] removed usage of Templating classes
7f13f95 [WebProfilerBundle] fixed a template reference
2015-09-28 16:27:59 +02:00
Fabien Potencier
ff3c107f14 [TwigBundle] removed usage of Templating classes 2015-09-28 16:10:19 +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
Fabien Potencier
7f13f9537c [WebProfilerBundle] fixed a template reference 2015-09-28 15:53:15 +02:00
Fabien Potencier
c2cfbcfa60 feature #14132 Applied the new styles to the router: commands (javiereguiluz)
This PR was submitted for the 2.7 branch but it was merged into the 2.8 branch instead (closes #14132).

Discussion
----------

Applied the new styles to the router: commands

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

Here are some screenshots comparing these commands before/after.

## debug:router

![debug_router_all](https://cloud.githubusercontent.com/assets/73419/6919169/f9c44c14-d7b4-11e4-8470-fcaae35f334f.png)

## debug:router --show-controllers

![debug_router_all_and_controllers](https://cloud.githubusercontent.com/assets/73419/6919172/ff9aa610-d7b4-11e4-9d9b-07e9ba00a948.png)

## debug:router admin_post_delete

![debug_router_route](https://cloud.githubusercontent.com/assets/73419/6919177/08b1cfee-d7b5-11e4-8310-93a37e68faa5.png)

## router:match - no match

![router_match_no_match](https://cloud.githubusercontent.com/assets/73419/6919186/1cda7afc-d7b5-11e4-9833-2083b4f7b3b2.png)

## router:match - almost match

![router_match_almost](https://cloud.githubusercontent.com/assets/73419/6919190/2095ba8a-d7b5-11e4-8d19-d51fa52cd3f5.png)

## router:match - exact match

![router_match_exact](https://cloud.githubusercontent.com/assets/73419/6919193/236ddb48-d7b5-11e4-9be0-53ec95ce940f.png)

## Deprecated router:dump-apache

![dump_apache](https://cloud.githubusercontent.com/assets/73419/6919164/ebe3651c-d7b4-11e4-9f73-ddf2db825974.png)

Commits
-------

13d0da2 Applied the new styles to the router: commands
2015-09-28 15:51:13 +02:00
Javier Eguiluz
13d0da26fd Applied the new styles to the router: commands 2015-09-28 15:50:38 +02:00
Fabien Potencier
078f953935 feature #15356 [WebProfilerBundle] Profiler View Latest should preserve all the current query parameters (jbafford)
This PR was merged into the 2.8 branch.

Discussion
----------

[WebProfilerBundle] Profiler View Latest should preserve all the current query parameters

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

This improves the View Latest link by preserving all of the current query parameters, which makes it more useful with the Logs panel, for example.

Commits
-------

dc6ee81 Profiler View Latest should preserve all the current query parameters
2015-09-28 15:36:39 +02:00
John Bafford
dc6ee81196 Profiler View Latest should preserve all the current query parameters
* Restore View Latest button
* In order to fit into the horizontal space available, shorten the names of the Latest Profiles and View Latest buttons and adjust the buttons' margin and padding.
2015-09-28 09:22:20 -04:00
Fabien Potencier
3bea01bd0d feature #15953 [TwigBridge] is_granted no longer raise an exception if the token storage is empty (lyrixx)
This PR was merged into the 2.8 branch.

Discussion
----------

[TwigBridge] is_granted no longer raise an exception if the token storage is empty

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

Commits
-------

6be68fd [TwigBridge] is_granted no longer raise an exception if the token storage is empty
2015-09-28 13:35:25 +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
32002d771e feature #15939 Removed the "Delete profiles" action from the web profiler sidebar (javiereguiluz)
This PR was merged into the 2.8 branch.

Discussion
----------

Removed the "Delete profiles" action from the web profiler sidebar

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

Commits
-------

8c47eb9 Removed the "Delete profiles" action from the web profiler sidebar
2015-09-28 13:21:15 +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
Fabien Potencier
d3271e1fae missing tags in whitelist 2015-09-28 12:16:05 +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
dc937f899e minor #15961 [Security] Fix tests in 2.8 (WouterJ)
This PR was merged into the 2.8 branch.

Discussion
----------

[Security] Fix tests in 2.8

ping @fabpot

Commits
-------

20c90f5 Fix tests in 2.8
2015-09-28 10:22:58 +02:00
Wouter J
20c90f5891 Fix tests in 2.8 2015-09-28 10:20:11 +02:00
Fabien Potencier
46746f8954 minor #15960 [Validator] Sync polish translation file (stloyd)
This PR was merged into the 2.8 branch.

Discussion
----------

[Validator] Sync polish translation file

| Q             | A
| ------------- | ---
| Bug fix?      | no
| BC breaks?    | no
| License       | MIT

Commits
-------

7a88c37 [Validator] Sync polish translation file
2015-09-28 10:04:29 +02:00
Joseph Bielawski
7a88c37743 [Validator] Sync polish translation file 2015-09-28 09:59:13 +02:00
Grégoire Pineau
6be68fd845 [TwigBridge] is_granted no longer raise an exception if the token storage is empty 2015-09-28 09:38:38 +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
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
Javier Eguiluz
8c47eb9be6 Removed the "Delete profiles" action from the web profiler sidebar 2015-09-27 15:39:02 +02:00
Fabien Potencier
6ae7d95e13 feature #15907 [DomCrawler] Deprecate methods inherited from SplObjectStorage (stof)
This PR was merged into the 2.8 branch.

Discussion
----------

[DomCrawler] Deprecate methods inherited from SplObjectStorage

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

There is no documentation change to be done for it: we don't document the fact that DomCrawler extends SplObjectStorage (this is an implementation detail which leaked because of using inheritance rather than composition).

Commits
-------

997c650 Deprecate methods inherited from SplObjectStorage
2015-09-27 15:24:43 +02:00
Christophe Coevoet
997c650c1c Deprecate methods inherited from SplObjectStorage 2015-09-27 15:06:19 +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