From e34463875a2c552b00ee34661b53abaab369faaf Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:11:39 +1200 Subject: [PATCH] DEP Deprecate API that will be removed or renamed (#11401) --- src/Security/Member.php | 3 ++- src/Security/PasswordValidator.php | 12 ++++++++++++ tests/php/Forms/ConfirmedPasswordFieldTest.php | 7 +++++-- tests/php/Security/MemberAuthenticatorTest.php | 7 +++++-- tests/php/Security/MemberCsvBulkLoaderTest.php | 7 +++++-- tests/php/Security/MemberTest.php | 13 ++++++++----- tests/php/Security/PasswordValidatorTest.php | 11 ++++++----- .../Security/VersionedMemberAuthenticatorTest.php | 7 +++++-- 8 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/Security/Member.php b/src/Security/Member.php index 2003e8f05cd..2c7c7e710ee 100644 --- a/src/Security/Member.php +++ b/src/Security/Member.php @@ -40,6 +40,7 @@ use Symfony\Component\Mime\Exception\RfcComplianceException; use Closure; use RuntimeException; +use SilverStripe\Dev\Deprecation; /** * The member class which represents the users of the system @@ -396,7 +397,7 @@ public static function set_password_validator(PasswordValidator $validator = nul public static function password_validator() { if (Injector::inst()->has(PasswordValidator::class)) { - return Injector::inst()->get(PasswordValidator::class); + return Deprecation::withSuppressedNotice(fn() => Injector::inst()->get(PasswordValidator::class)); } return null; } diff --git a/src/Security/PasswordValidator.php b/src/Security/PasswordValidator.php index 62288201dc0..6e54b79c573 100644 --- a/src/Security/PasswordValidator.php +++ b/src/Security/PasswordValidator.php @@ -5,6 +5,7 @@ use SilverStripe\Core\Config\Configurable; use SilverStripe\Core\Extensible; use SilverStripe\Core\Injector\Injectable; +use SilverStripe\Dev\Deprecation; use SilverStripe\ORM\ValidationResult; /** @@ -19,6 +20,8 @@ * * Member::set_password_validator($pwdValidator); * + * + * @deprecated 5.4.0 Will be renamed to SilverStripe\Security\Validation\RulesPasswordValidator */ class PasswordValidator { @@ -75,6 +78,15 @@ class PasswordValidator */ protected $historicalPasswordCount = null; + public function __construct() + { + Deprecation::notice( + '5.4.0', + 'Will be renamed to SilverStripe\Security\Validation\RulesPasswordValidator', + Deprecation::SCOPE_CLASS + ); + } + /** * @return int */ diff --git a/tests/php/Forms/ConfirmedPasswordFieldTest.php b/tests/php/Forms/ConfirmedPasswordFieldTest.php index 971ad371672..91d04f3ca9a 100644 --- a/tests/php/Forms/ConfirmedPasswordFieldTest.php +++ b/tests/php/Forms/ConfirmedPasswordFieldTest.php @@ -14,6 +14,7 @@ use SilverStripe\Security\PasswordValidator; use SilverStripe\View\SSViewer; use Closure; +use SilverStripe\Dev\Deprecation; class ConfirmedPasswordFieldTest extends SapphireTest { @@ -23,9 +24,11 @@ protected function setUp(): void { parent::setUp(); - PasswordValidator::singleton() + Deprecation::withSuppressedNotice( + fn() => PasswordValidator::singleton() ->setMinLength(0) - ->setTestNames([]); + ->setTestNames([]) + ); } public function testSetValue() diff --git a/tests/php/Security/MemberAuthenticatorTest.php b/tests/php/Security/MemberAuthenticatorTest.php index 53db67188cb..93a918f0512 100644 --- a/tests/php/Security/MemberAuthenticatorTest.php +++ b/tests/php/Security/MemberAuthenticatorTest.php @@ -6,6 +6,7 @@ use SilverStripe\Control\NullHTTPRequest; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Dev\Deprecation; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\FieldType\DBDatetime; use SilverStripe\ORM\ValidationResult; @@ -44,9 +45,11 @@ protected function setUp(): void DefaultAdminService::setDefaultAdmin('admin', 'password'); // Enforce dummy validation (this can otherwise be influenced by recipe config) - PasswordValidator::singleton() + Deprecation::withSuppressedNotice( + fn() => PasswordValidator::singleton() ->setMinLength(0) - ->setTestNames([]); + ->setTestNames([]) + ); } protected function tearDown(): void diff --git a/tests/php/Security/MemberCsvBulkLoaderTest.php b/tests/php/Security/MemberCsvBulkLoaderTest.php index e768f612537..6860ee18f13 100644 --- a/tests/php/Security/MemberCsvBulkLoaderTest.php +++ b/tests/php/Security/MemberCsvBulkLoaderTest.php @@ -2,6 +2,7 @@ namespace SilverStripe\Security\Tests; +use SilverStripe\Dev\Deprecation; use SilverStripe\ORM\DataObject; use SilverStripe\Security\Group; use SilverStripe\Security\MemberCsvBulkLoader; @@ -19,9 +20,11 @@ protected function setUp(): void { parent::setUp(); - PasswordValidator::singleton() + Deprecation::withSuppressedNotice( + fn() => PasswordValidator::singleton() ->setMinLength(0) - ->setTestNames([]); + ->setTestNames([]) + ); } public function testNewImport() diff --git a/tests/php/Security/MemberTest.php b/tests/php/Security/MemberTest.php index ac877ddf426..74eb283ddcd 100644 --- a/tests/php/Security/MemberTest.php +++ b/tests/php/Security/MemberTest.php @@ -8,6 +8,7 @@ use SilverStripe\Core\Config\Config; use SilverStripe\Core\Convert; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Dev\Deprecation; use SilverStripe\Dev\FunctionalTest; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\FieldList; @@ -72,9 +73,11 @@ protected function setUp(): void Member::config()->set('unique_identifier_field', 'Email'); - PasswordValidator::singleton() + Deprecation::withSuppressedNotice( + fn() => PasswordValidator::singleton() ->setMinLength(0) - ->setTestNames([]); + ->setTestNames([]) + ); i18n::set_locale('en_US'); } @@ -1742,7 +1745,7 @@ public function testNewMembersReceiveTheDefaultLocale() public function testChangePasswordOnlyValidatesPlaintext() { // This validator requires passwords to be 17 characters long - Member::set_password_validator(new MemberTest\VerySpecificPasswordValidator()); + Member::set_password_validator(Deprecation::withSuppressedNotice(fn() => new MemberTest\VerySpecificPasswordValidator())); // This algorithm will never return a 17 character hash Security::config()->set('password_encryption_algorithm', 'blowfish'); @@ -1771,7 +1774,7 @@ public function testEmailIsTrimmed() public function testChangePasswordToBlankIsValidated() { - Member::set_password_validator(new PasswordValidator()); + Member::set_password_validator(Deprecation::withSuppressedNotice(fn() => new PasswordValidator())); // override setup() function which setMinLength(0) PasswordValidator::singleton()->setMinLength(8); // 'test' member has a password defined in yml @@ -1909,7 +1912,7 @@ public function testGenerateRandomPassword() $password = $member->generateRandomPassword(); $this->assertSame(20, strlen($password)); // password validator - $validator = new PasswordValidator(); + $validator = Deprecation::withSuppressedNotice(fn() => new PasswordValidator()); Member::set_password_validator($validator); // Password length of 20 even if validator minLength is less than 20 $validator->setMinLength(10); diff --git a/tests/php/Security/PasswordValidatorTest.php b/tests/php/Security/PasswordValidatorTest.php index 560a8f25567..8b92eac947a 100644 --- a/tests/php/Security/PasswordValidatorTest.php +++ b/tests/php/Security/PasswordValidatorTest.php @@ -2,6 +2,7 @@ namespace SilverStripe\Security\Tests; +use SilverStripe\Dev\Deprecation; use SilverStripe\Dev\SapphireTest; use SilverStripe\Security\Member; use SilverStripe\Security\PasswordValidator; @@ -26,7 +27,7 @@ protected function setUp(): void public function testValidate() { - $v = new PasswordValidator(); + $v = Deprecation::withSuppressedNotice(fn() => new PasswordValidator()); $r = $v->validate('', new Member()); $this->assertTrue($r->isValid(), 'Empty password is valid by default'); @@ -36,7 +37,7 @@ public function testValidate() public function testValidateMinLength() { - $v = new PasswordValidator(); + $v = Deprecation::withSuppressedNotice(fn() => new PasswordValidator()); $v->setMinLength(4); $r = $v->validate('123', new Member()); @@ -50,7 +51,7 @@ public function testValidateMinLength() public function testValidateMinScore() { // Set both score and set of tests - $v = new PasswordValidator(); + $v = Deprecation::withSuppressedNotice(fn() => new PasswordValidator()); $v->setMinTestScore(3); $v->setTestNames(["lowercase", "uppercase", "digits", "punctuation"]); @@ -61,7 +62,7 @@ public function testValidateMinScore() $this->assertTrue($r->isValid(), 'Passing enough tests'); // Ensure min score without tests works (uses default tests) - $v = new PasswordValidator(); + $v = Deprecation::withSuppressedNotice(fn() => new PasswordValidator()); $v->setMinTestScore(3); $r = $v->validate('aA', new Member()); @@ -81,7 +82,7 @@ public function testValidateMinScore() */ public function testHistoricalPasswordCount() { - $validator = new PasswordValidator; + $validator = Deprecation::withSuppressedNotice(fn() => new PasswordValidator); $validator->setHistoricCount(3); Member::set_password_validator($validator); diff --git a/tests/php/Security/VersionedMemberAuthenticatorTest.php b/tests/php/Security/VersionedMemberAuthenticatorTest.php index a2693156796..e211b178bd3 100644 --- a/tests/php/Security/VersionedMemberAuthenticatorTest.php +++ b/tests/php/Security/VersionedMemberAuthenticatorTest.php @@ -6,6 +6,7 @@ use SilverStripe\Control\NullHTTPRequest; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Dev\Deprecation; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\FieldType\DBDatetime; use SilverStripe\ORM\ValidationResult; @@ -43,9 +44,11 @@ protected function setUp(): void } // Enforce dummy validation (this can otherwise be influenced by recipe config) - PasswordValidator::singleton() + Deprecation::withSuppressedNotice( + fn() => PasswordValidator::singleton() ->setMinLength(0) - ->setTestNames([]); + ->setTestNames([]) + ); } protected function tearDown(): void