Hard deprecate Password::equals()
authorMax Semenik <maxsem.wiki@gmail.com>
Sun, 17 Mar 2019 07:36:12 +0000 (00:36 -0700)
committerMax Semenik <maxsem.wiki@gmail.com>
Sat, 13 Apr 2019 01:39:14 +0000 (18:39 -0700)
Change-Id: I8d655a4f7a57f2186b1457d956af74bf21d4db08

includes/password/Argon2Password.php
includes/password/InvalidPassword.php
includes/password/Password.php
tests/phpunit/includes/password/PasswordTestCase.php
tests/phpunit/includes/user/BotPasswordTest.php

index 9138c33..c03da3b 100644 (file)
@@ -81,6 +81,8 @@ class Argon2Password extends Password {
         * @inheritDoc
         */
        public function equals( $other ) {
+               wfDeprecated( __METHOD__, '1.33' );
+
                if ( is_string( $other ) ) {
                        return $this->verify( $other );
                }
index 978118f..105937c 100644 (file)
@@ -38,6 +38,8 @@ class InvalidPassword extends Password {
        }
 
        public function equals( $other ) {
+               wfDeprecated( __METHOD__, '1.33' );
+
                return false;
        }
 
index 4caff8e..342995a 100644 (file)
@@ -155,11 +155,14 @@ abstract class Password {
         * custom comparison, but it is not recommended unless necessary.
         *
         * @deprecated since 1.33, use verify()
+        * @codeCoverageIgnore
         *
         * @param Password|string $other The other password
         * @return bool True if equal, false otherwise
         */
        public function equals( $other ) {
+               wfDeprecated( __METHOD__, '1.33' );
+
                if ( is_string( $other ) ) {
                        return $this->verify( $other );
                }
index d1e2578..4557ace 100644 (file)
@@ -82,8 +82,6 @@ abstract class PasswordTestCase extends MediaWikiTestCase {
                $invalid = $this->passwordFactory->newFromCiphertext( null );
                $normal = $this->passwordFactory->newFromCiphertext( $hash );
 
-               $this->assertFalse( $invalid->equals( $normal ) );
-               $this->assertFalse( $normal->equals( $invalid ) );
                $this->assertFalse( $invalid->verify( $hash ) );
        }
 
index bc0946f..4ef8ea9 100644 (file)
@@ -184,11 +184,12 @@ class BotPasswordTest extends MediaWikiTestCase {
        }
 
        public function testGetPassword() {
+               /** @var BotPassword $bp */
                $bp = TestingAccessWrapper::newFromObject( BotPassword::newFromCentralId( 42, 'BotPassword' ) );
 
                $password = $bp->getPassword();
                $this->assertInstanceOf( Password::class, $password );
-               $this->assertTrue( $password->equals( 'foobaz' ) );
+               $this->assertTrue( $password->verify( 'foobaz' ) );
 
                $bp->centralId = 44;
                $password = $bp->getPassword();
@@ -373,11 +374,12 @@ class BotPasswordTest extends MediaWikiTestCase {
                $this->assertEquals( $bp->getToken(), $bp2->getToken() );
                $this->assertEquals( $bp->getRestrictions(), $bp2->getRestrictions() );
                $this->assertEquals( $bp->getGrants(), $bp2->getGrants() );
+               /** @var Password $pw */
                $pw = TestingAccessWrapper::newFromObject( $bp )->getPassword();
                if ( $password === null ) {
                        $this->assertInstanceOf( InvalidPassword::class, $pw );
                } else {
-                       $this->assertTrue( $pw->equals( $password ) );
+                       $this->assertTrue( $pw->verify( $password ) );
                }
 
                $token = $bp->getToken();
@@ -389,19 +391,21 @@ class BotPasswordTest extends MediaWikiTestCase {
                $bp2 = BotPassword::newFromCentralId( 42, 'TestSave', BotPassword::READ_LATEST );
                $this->assertInstanceOf( BotPassword::class, $bp2 );
                $this->assertEquals( $bp->getToken(), $bp2->getToken() );
+               /** @var Password $pw */
                $pw = TestingAccessWrapper::newFromObject( $bp )->getPassword();
                if ( $password === null ) {
                        $this->assertInstanceOf( InvalidPassword::class, $pw );
                } else {
-                       $this->assertTrue( $pw->equals( $password ) );
+                       $this->assertTrue( $pw->verify( $password ) );
                }
 
                $passwordHash = $passwordFactory->newFromPlaintext( 'XXX' );
                $token = $bp->getToken();
                $this->assertTrue( $bp->save( 'update', $passwordHash ) );
                $this->assertNotEquals( $token, $bp->getToken() );
+               /** @var Password $pw */
                $pw = TestingAccessWrapper::newFromObject( $bp )->getPassword();
-               $this->assertTrue( $pw->equals( 'XXX' ) );
+               $this->assertTrue( $pw->verify( 'XXX' ) );
 
                $this->assertTrue( $bp->delete() );
                $this->assertFalse( $bp->isSaved() );