trigger some deprecations for legacy methods

This commit is contained in:
Christian Flothmann 2017-11-23 11:49:18 +01:00
parent 82b36e42bf
commit e3396ea231
40 changed files with 80 additions and 63 deletions

18
UPGRADE-4.1.md Normal file
View File

@ -0,0 +1,18 @@
UPGRADE FROM 4.0 to 4.1
=======================
Security
--------
* The `ContextListener::setLogoutOnUserChange()` method is deprecated and will be removed in 5.0.
SecurityBundle
--------------
* The `logout_on_user_change` firewall option is deprecated and will be removed in 5.0.
Translation
-----------
* The `FileDumper::setBackup()` method is deprecated and will be removed in 5.0.
* The `TranslationWriter::disableBackup()` method is deprecated and will be removed in 5.0.

18
UPGRADE-5.0.md Normal file
View File

@ -0,0 +1,18 @@
UPGRADE FROM 4.x to 5.0
=======================
Security
--------
* The `ContextListener::setLogoutOnUserChange()` method has been removed.
SecurityBundle
--------------
* The `logout_on_user_change` firewall option has been removed.
Translation
-----------
* The `FileDumper::setBackup()` method has been removed.
* The `TranslationWriter::disableBackup()` method has been removed.

View File

@ -1,6 +1,11 @@
CHANGELOG CHANGELOG
========= =========
4.1.0
-----
* The `logout_on_user_change` firewall option is deprecated and will be removed in 5.0.
4.0.0 4.0.0
----- -----

View File

@ -200,6 +200,7 @@ class MainConfiguration implements ConfigurationInterface
->booleanNode('logout_on_user_change') ->booleanNode('logout_on_user_change')
->defaultTrue() ->defaultTrue()
->info('When true, it will trigger a logout for the user if something has changed.') ->info('When true, it will trigger a logout for the user if something has changed.')
->setDeprecated('The "%path%.%node%" configuration key has been deprecated in Symfony 4.1 and will be removed in 5.0.')
->end() ->end()
->arrayNode('logout') ->arrayNode('logout')
->treatTrueLike(array()) ->treatTrueLike(array())
@ -290,17 +291,6 @@ class MainConfiguration implements ConfigurationInterface
return $firewall; return $firewall;
}) })
->end() ->end()
->validate()
->ifTrue(function ($v) {
return (isset($v['stateless']) && true === $v['stateless']) || (isset($v['security']) && false === $v['security']);
})
->then(function ($v) {
// this option doesn't change behavior when true when stateless, so prevent deprecations
$v['logout_on_user_change'] = true;
return $v;
})
->end()
; ;
} }

View File

@ -181,8 +181,6 @@ class SecurityExtension extends Extension
$customUserChecker = true; $customUserChecker = true;
} }
$contextListenerDefinition->addMethodCall('setLogoutOnUserChange', array($firewall['logout_on_user_change']));
$configId = 'security.firewall.map.config.'.$name; $configId = 'security.firewall.map.config.'.$name;
list($matcher, $listeners, $exceptionListener) = $this->createFirewall($container, $name, $firewall, $authenticationProviders, $providerIds, $configId); list($matcher, $listeners, $exceptionListener) = $this->createFirewall($container, $name, $firewall, $authenticationProviders, $providerIds, $configId);

View File

@ -13,7 +13,6 @@ $container->loadFromExtension('security', array(
'main' => array( 'main' => array(
'form_login' => false, 'form_login' => false,
'http_basic' => null, 'http_basic' => null,
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -72,7 +72,6 @@ $container->loadFromExtension('security', array(
'logout' => true, 'logout' => true,
'remember_me' => array('secret' => 'TheSecret'), 'remember_me' => array('secret' => 'TheSecret'),
'user_checker' => null, 'user_checker' => null,
'logout_on_user_change' => true,
), ),
'host' => array( 'host' => array(
'provider' => 'default', 'provider' => 'default',
@ -81,14 +80,12 @@ $container->loadFromExtension('security', array(
'methods' => array('GET', 'POST'), 'methods' => array('GET', 'POST'),
'anonymous' => true, 'anonymous' => true,
'http_basic' => true, 'http_basic' => true,
'logout_on_user_change' => true,
), ),
'with_user_checker' => array( 'with_user_checker' => array(
'provider' => 'default', 'provider' => 'default',
'user_checker' => 'app.user_checker', 'user_checker' => 'app.user_checker',
'anonymous' => true, 'anonymous' => true,
'http_basic' => true, 'http_basic' => true,
'logout_on_user_change' => true,
), ),
), ),

View File

@ -15,12 +15,10 @@ $container->loadFromExtension('security', array(
'main' => array( 'main' => array(
'provider' => 'default', 'provider' => 'default',
'form_login' => true, 'form_login' => true,
'logout_on_user_change' => true,
), ),
'other' => array( 'other' => array(
'provider' => 'with-dash', 'provider' => 'with-dash',
'form_login' => true, 'form_login' => true,
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -12,7 +12,6 @@ $container->loadFromExtension('security', array(
'main' => array( 'main' => array(
'provider' => 'undefined', 'provider' => 'undefined',
'form_login' => true, 'form_login' => true,
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -11,7 +11,6 @@ $container->loadFromExtension('security', array(
'firewalls' => array( 'firewalls' => array(
'main' => array( 'main' => array(
'form_login' => array('provider' => 'default'), 'form_login' => array('provider' => 'default'),
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -11,7 +11,6 @@ $container->loadFromExtension('security', array(
'firewalls' => array( 'firewalls' => array(
'main' => array( 'main' => array(
'form_login' => array('provider' => 'undefined'), 'form_login' => array('provider' => 'undefined'),
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -11,7 +11,6 @@ $container->loadFromExtension('security', array(
'main' => array( 'main' => array(
'form_login' => false, 'form_login' => false,
'http_basic' => null, 'http_basic' => null,
'logout_on_user_change' => true,
), ),
), ),

View File

@ -6,7 +6,6 @@ $container->loadFromExtension('security', array(
'form_login' => array( 'form_login' => array(
'login_path' => '/login', 'login_path' => '/login',
), ),
'logout_on_user_change' => true,
), ),
), ),
'role_hierarchy' => array( 'role_hierarchy' => array(

View File

@ -13,7 +13,6 @@ $container->loadFromExtension('security', array(
'catch_exceptions' => false, 'catch_exceptions' => false,
'token_provider' => 'token_provider_id', 'token_provider' => 'token_provider_id',
), ),
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -10,7 +10,7 @@
<provider name="default" id="foo" /> <provider name="default" id="foo" />
<firewall name="main" logout-on-user-change="true"> <firewall name="main">
<form-login login-path="/login" /> <form-login login-path="/login" />
</firewall> </firewall>
</config> </config>

View File

@ -57,12 +57,12 @@
<remember-me secret="TheSecret"/> <remember-me secret="TheSecret"/>
</firewall> </firewall>
<firewall name="host" pattern="/test" host="foo\.example\.org" methods="GET,POST" logout-on-user-change="true" provider="default"> <firewall name="host" pattern="/test" host="foo\.example\.org" methods="GET,POST" provider="default">
<anonymous /> <anonymous />
<http-basic /> <http-basic />
</firewall> </firewall>
<firewall name="with_user_checker" logout-on-user-change="true" provider="default"> <firewall name="with_user_checker" provider="default">
<anonymous /> <anonymous />
<http-basic /> <http-basic />
<user-checker>app.user_checker</user-checker> <user-checker>app.user_checker</user-checker>

View File

@ -11,7 +11,7 @@
</sec:providers> </sec:providers>
<sec:firewalls> <sec:firewalls>
<sec:firewall name="main" provider="with-dash" logout-on-user-change="true"> <sec:firewall name="main" provider="with-dash">
<sec:form_login /> <sec:form_login />
</sec:firewall> </sec:firewall>
</sec:firewalls> </sec:firewalls>

View File

@ -11,7 +11,7 @@
</sec:providers> </sec:providers>
<sec:firewalls> <sec:firewalls>
<sec:firewall name="main" provider="undefined" logout-on-user-change="true"> <sec:firewall name="main" provider="undefined">
<sec:form_login /> <sec:form_login />
</sec:firewall> </sec:firewall>
</sec:firewalls> </sec:firewalls>

View File

@ -11,7 +11,7 @@
</sec:providers> </sec:providers>
<sec:firewalls> <sec:firewalls>
<sec:firewall name="main" logout-on-user-change="true"> <sec:firewall name="main">
<sec:form_login provider="default" /> <sec:form_login provider="default" />
</sec:firewall> </sec:firewall>
</sec:firewalls> </sec:firewalls>

View File

@ -11,7 +11,7 @@
</sec:providers> </sec:providers>
<sec:firewalls> <sec:firewalls>
<sec:firewall name="main" logout-on-user-change="true"> <sec:firewall name="main">
<sec:form_login provider="undefined" /> <sec:form_login provider="undefined" />
</sec:firewall> </sec:firewall>
</sec:firewalls> </sec:firewalls>

View File

@ -12,7 +12,7 @@
<sec:config> <sec:config>
<sec:provider name="default" id="foo" /> <sec:provider name="default" id="foo" />
<sec:firewall name="main" form-login="false" logout-on-user-change="true"> <sec:firewall name="main" form-login="false">
<sec:http-basic /> <sec:http-basic />
</sec:firewall> </sec:firewall>

View File

@ -6,7 +6,7 @@
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<config> <config>
<firewall name="main" logout-on-user-change="true"> <firewall name="main">
<form-login login-path="/login" /> <form-login login-path="/login" />
</firewall> </firewall>

View File

@ -9,7 +9,7 @@
<sec:providers> <sec:providers>
<sec:default id="foo"/> <sec:default id="foo"/>
</sec:providers> </sec:providers>
<sec:firewall name="main" logout-on-user-change="true"> <sec:firewall name="main">
<sec:form-login/> <sec:form-login/>
<sec:remember-me secret="TheSecret" catch-exceptions="false" token-provider="token_provider_id" /> <sec:remember-me secret="TheSecret" catch-exceptions="false" token-provider="token_provider_id" />
</sec:firewall> </sec:firewall>

View File

@ -10,4 +10,3 @@ security:
main: main:
form_login: false form_login: false
http_basic: ~ http_basic: ~
logout_on_user_change: true

View File

@ -64,14 +64,12 @@ security:
methods: [GET,POST] methods: [GET,POST]
anonymous: true anonymous: true
http_basic: true http_basic: true
logout_on_user_change: true
with_user_checker: with_user_checker:
provider: default provider: default
anonymous: ~ anonymous: ~
http_basic: ~ http_basic: ~
user_checker: app.user_checker user_checker: app.user_checker
logout_on_user_change: true
role_hierarchy: role_hierarchy:
ROLE_ADMIN: ROLE_USER ROLE_ADMIN: ROLE_USER

View File

@ -11,8 +11,6 @@ security:
main: main:
provider: default provider: default
form_login: true form_login: true
logout_on_user_change: true
other: other:
provider: with-dash provider: with-dash
form_login: true form_login: true
logout_on_user_change: true

View File

@ -8,4 +8,3 @@ security:
main: main:
provider: undefined provider: undefined
form_login: true form_login: true
logout_on_user_change: true

View File

@ -8,4 +8,3 @@ security:
main: main:
form_login: form_login:
provider: default provider: default
logout_on_user_change: true

View File

@ -8,4 +8,3 @@ security:
main: main:
form_login: form_login:
provider: undefined provider: undefined
logout_on_user_change: true

View File

@ -9,7 +9,6 @@ security:
main: main:
form_login: false form_login: false
http_basic: ~ http_basic: ~
logout_on_user_change: true
role_hierarchy: role_hierarchy:
FOO: [MOO] FOO: [MOO]

View File

@ -3,7 +3,6 @@ security:
main: main:
form_login: form_login:
login_path: /login login_path: /login
logout_on_user_change: true
role_hierarchy: role_hierarchy:
FOO: BAR FOO: BAR

View File

@ -10,4 +10,3 @@ security:
secret: TheSecret secret: TheSecret
catch_exceptions: false catch_exceptions: false
token_provider: token_provider_id token_provider: token_provider_id
logout_on_user_change: true

View File

@ -29,7 +29,6 @@ class MainConfigurationTest extends TestCase
), ),
'firewalls' => array( 'firewalls' => array(
'stub' => array(), 'stub' => array(),
'logout_on_user_change' => true,
), ),
); );
@ -77,7 +76,6 @@ class MainConfigurationTest extends TestCase
'csrf_token_generator' => 'a_token_generator', 'csrf_token_generator' => 'a_token_generator',
'csrf_token_id' => 'a_token_id', 'csrf_token_id' => 'a_token_id',
), ),
'logout_on_user_change' => true,
), ),
), ),
); );
@ -107,7 +105,6 @@ class MainConfigurationTest extends TestCase
'firewalls' => array( 'firewalls' => array(
'stub' => array( 'stub' => array(
'user_checker' => 'app.henk_checker', 'user_checker' => 'app.henk_checker',
'logout_on_user_change' => true,
), ),
), ),
); );

View File

@ -38,7 +38,6 @@ class SecurityExtensionTest extends TestCase
'form_login' => array( 'form_login' => array(
'check_path' => '/some_area/login_check', 'check_path' => '/some_area/login_check',
), ),
'logout_on_user_change' => true,
), ),
), ),
)); ));
@ -62,7 +61,6 @@ class SecurityExtensionTest extends TestCase
'firewalls' => array( 'firewalls' => array(
'some_firewall' => array( 'some_firewall' => array(
'pattern' => '/.*', 'pattern' => '/.*',
'logout_on_user_change' => true,
), ),
), ),
)); ));
@ -90,7 +88,6 @@ class SecurityExtensionTest extends TestCase
'some_firewall' => array( 'some_firewall' => array(
'pattern' => '/.*', 'pattern' => '/.*',
'http_basic' => array(), 'http_basic' => array(),
'logout_on_user_change' => true,
), ),
), ),
)); ));
@ -113,7 +110,6 @@ class SecurityExtensionTest extends TestCase
'some_firewall' => array( 'some_firewall' => array(
'pattern' => '/.*', 'pattern' => '/.*',
'http_basic' => null, 'http_basic' => null,
'logout_on_user_change' => true,
), ),
), ),
)); ));
@ -137,7 +133,6 @@ class SecurityExtensionTest extends TestCase
'stateless' => true, 'stateless' => true,
'http_basic' => null, 'http_basic' => null,
'switch_user' => array('stateless' => false), 'switch_user' => array('stateless' => false),
'logout_on_user_change' => true,
), ),
), ),
)); ));
@ -159,7 +154,6 @@ class SecurityExtensionTest extends TestCase
'firewalls' => array( 'firewalls' => array(
'default' => array( 'default' => array(
'http_basic' => array('provider' => 'second'), 'http_basic' => array('provider' => 'second'),
'logout_on_user_change' => true,
), ),
), ),
)); ));

View File

@ -1,6 +1,11 @@
CHANGELOG CHANGELOG
========= =========
4.1.0
-----
* The `ContextListener::setLogoutOnUserChange()` method is deprecated and will be removed in 5.0.
4.0.0 4.0.0
----- -----

View File

@ -67,10 +67,12 @@ class ContextListener implements ListenerInterface
* Enables deauthentication during refreshUser when the user has changed. * Enables deauthentication during refreshUser when the user has changed.
* *
* @param bool $logoutOnUserChange * @param bool $logoutOnUserChange
*
* @deprecated since version 4.1, to be removed in 5.0
*/ */
public function setLogoutOnUserChange($logoutOnUserChange) public function setLogoutOnUserChange($logoutOnUserChange)
{ {
// no-op, method to be deprecated in 4.1 @trigger_error(sprintf('The %s() method is deprecated since 4.1 and will be removed in 5.0.', __METHOD__), E_USER_DEPRECATED);
} }
/** /**

View File

@ -1,6 +1,12 @@
CHANGELOG CHANGELOG
========= =========
4.1.0
-----
* The `FileDumper::setBackup()` method is deprecated and will be removed in 5.0.
* The `TranslationWriter::disableBackup()` method is deprecated and will be removed in 5.0.
4.0.0 4.0.0
----- -----

View File

@ -46,15 +46,16 @@ abstract class FileDumper implements DumperInterface
* Sets backup flag. * Sets backup flag.
* *
* @param bool * @param bool
*
* @deprecated since version 4.1, to be removed in 5.0
*/ */
public function setBackup($backup) public function setBackup($backup)
{ {
@trigger_error(sprintf('The %s() method is deprecated since 4.1 and will be removed in 5.0.', __METHOD__), E_USER_DEPRECATED);
if (false !== $backup) { if (false !== $backup) {
throw new \LogicException('The backup feature is no longer supported.'); throw new \LogicException('The backup feature is no longer supported.');
} }
// the method is only present to not break BC
// to be deprecated in 4.1
} }
/** /**

View File

@ -30,6 +30,9 @@ class TranslationWriterTest extends TestCase
$writer->write(new MessageCatalogue('en'), 'test'); $writer->write(new MessageCatalogue('en'), 'test');
} }
/**
* @group legacy
*/
public function testDisableBackup() public function testDisableBackup()
{ {
$nonBackupDumper = new NonBackupDumper(); $nonBackupDumper = new NonBackupDumper();

View File

@ -38,10 +38,13 @@ class TranslationWriter implements TranslationWriterInterface
/** /**
* Disables dumper backup. * Disables dumper backup.
*
* @deprecated since version 4.1, to be removed in 5.0
*/ */
public function disableBackup() public function disableBackup()
{ {
// to be deprecated in 4.1 @trigger_error(sprintf('The %s() method is deprecated since 4.1 and will be removed in 5.0.', __METHOD__), E_USER_DEPRECATED);
foreach ($this->dumpers as $dumper) { foreach ($this->dumpers as $dumper) {
if (method_exists($dumper, 'setBackup')) { if (method_exists($dumper, 'setBackup')) {
$dumper->setBackup(false); $dumper->setBackup(false);