aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUmherirrender <umherirrender_de.wp@web.de>2020-04-08 20:19:49 +0200
committerUmherirrender <umherirrender_de.wp@web.de>2020-10-15 20:11:23 +0200
commit8d71235c20d812d204b32fbfb2c43b4af594885c (patch)
tree2d3594f0811e4e6bf93a77821130845c3a8f2524
parentb6326b8a7d264d17ce4af4cf2672afbd05a4508f (diff)
downloadmediawikicore-8d71235c20d812d204b32fbfb2c43b4af594885c.tar.gz
mediawikicore-8d71235c20d812d204b32fbfb2c43b4af594885c.zip
Use UserNameUtils in AuthManager
Bug: T141495 Change-Id: I1c1cb5bf9807ee18e3cc4be84f8a3d6a52959add
-rw-r--r--includes/ServiceWiring.php3
-rw-r--r--includes/auth/AuthManager.php13
-rw-r--r--tests/phpunit/includes/auth/AbstractPasswordPrimaryAuthenticationProviderTest.php3
-rw-r--r--tests/phpunit/includes/auth/AuthManagerTest.php10
-rw-r--r--tests/phpunit/includes/auth/ConfirmLinkSecondaryAuthenticationProviderTest.php22
-rw-r--r--tests/phpunit/includes/auth/EmailNotificationSecondaryAuthenticationProviderTest.php5
-rw-r--r--tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php5
-rw-r--r--tests/phpunit/includes/auth/ResetPasswordSecondaryAuthenticationProviderTest.php13
-rw-r--r--tests/phpunit/includes/auth/TemporaryPasswordPrimaryAuthenticationProviderTest.php5
9 files changed, 63 insertions, 16 deletions
diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php
index 757195be9b4c..5615646d1a5c 100644
--- a/includes/ServiceWiring.php
+++ b/includes/ServiceWiring.php
@@ -144,7 +144,8 @@ return [
$services->getObjectFactory(),
$services->getPermissionManager(),
$services->getHookContainer(),
- $services->getReadOnlyMode()
+ $services->getReadOnlyMode(),
+ $services->getUserNameUtils()
);
$authManager->setLogger( LoggerFactory::getInstance( 'authentication' ) );
return $authManager;
diff --git a/includes/auth/AuthManager.php b/includes/auth/AuthManager.php
index 7fd0989862ea..2aac4c941b0f 100644
--- a/includes/auth/AuthManager.php
+++ b/includes/auth/AuthManager.php
@@ -28,6 +28,7 @@ use MediaWiki\HookContainer\HookContainer;
use MediaWiki\HookContainer\HookRunner;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\User\UserNameUtils;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
@@ -143,6 +144,9 @@ class AuthManager implements LoggerAwareInterface {
/** @var PermissionManager */
private $permManager;
+ /** @var UserNameUtils */
+ private $userNameUtils;
+
/** @var AuthenticationProvider[] */
private $allAuthenticationProviders = [];
@@ -183,6 +187,7 @@ class AuthManager implements LoggerAwareInterface {
* @param PermissionManager $permManager
* @param HookContainer $hookContainer
* @param ReadOnlyMode $readOnlyMode
+ * @param UserNameUtils $userNameUtils
*/
public function __construct(
WebRequest $request,
@@ -190,7 +195,8 @@ class AuthManager implements LoggerAwareInterface {
ObjectFactory $objectFactory,
PermissionManager $permManager,
HookContainer $hookContainer,
- ReadOnlyMode $readOnlyMode
+ ReadOnlyMode $readOnlyMode,
+ UserNameUtils $userNameUtils
) {
$this->request = $request;
$this->config = $config;
@@ -200,6 +206,7 @@ class AuthManager implements LoggerAwareInterface {
$this->hookRunner = new HookRunner( $hookContainer );
$this->setLogger( new NullLogger() );
$this->readOnlyMode = $readOnlyMode;
+ $this->userNameUtils = $userNameUtils;
}
/**
@@ -1648,7 +1655,7 @@ class AuthManager implements LoggerAwareInterface {
}
// Is the username creatable?
- if ( !User::isCreatableName( $username ) ) {
+ if ( !$this->userNameUtils->isCreatable( $username ) ) {
$this->logger->debug( __METHOD__ . ': name "{username}" is not creatable', [
'username' => $username,
] );
@@ -1841,7 +1848,7 @@ class AuthManager implements LoggerAwareInterface {
}
if ( $user->getId() === 0 ) {
- if ( !User::isUsableName( $user->getName() ) ) {
+ if ( !$this->userNameUtils->isUsable( $user->getName() ) ) {
$msg = wfMessage( 'noname' );
} else {
$msg = wfMessage( 'authmanager-userdoesnotexist', $user->getName() );
diff --git a/tests/phpunit/includes/auth/AbstractPasswordPrimaryAuthenticationProviderTest.php b/tests/phpunit/includes/auth/AbstractPasswordPrimaryAuthenticationProviderTest.php
index dfb26207332e..92794d46d5be 100644
--- a/tests/phpunit/includes/auth/AbstractPasswordPrimaryAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/AbstractPasswordPrimaryAuthenticationProviderTest.php
@@ -130,7 +130,8 @@ class AbstractPasswordPrimaryAuthenticationProviderTest extends \MediaWikiIntegr
$services->getObjectFactory(),
$services->getPermissionManager(),
$services->getHookContainer(),
- $services->getReadOnlyMode()
+ $services->getReadOnlyMode(),
+ $services->getUserNameUtils()
);
$provider = $this->getMockForAbstractClass(
diff --git a/tests/phpunit/includes/auth/AuthManagerTest.php b/tests/phpunit/includes/auth/AuthManagerTest.php
index e9f2a6907477..b92dbd5af324 100644
--- a/tests/phpunit/includes/auth/AuthManagerTest.php
+++ b/tests/phpunit/includes/auth/AuthManagerTest.php
@@ -14,6 +14,7 @@ use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
use MediaWiki\Session\SessionInfo;
use MediaWiki\Session\UserInfo;
+use MediaWiki\User\UserNameUtils;
use PHPUnit\Framework\Assert;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
@@ -47,6 +48,9 @@ class AuthManagerTest extends \MediaWikiIntegrationTestCase {
/** @var array */
private $authHooks;
+ /** @var UserNameUtils */
+ protected $userNameUtils;
+
/** @var LoggerInterface */
protected $logger;
@@ -193,6 +197,9 @@ class AuthManagerTest extends \MediaWikiIntegrationTestCase {
$this->objectFactory
);
}
+ if ( $regen || !$this->userNameUtils ) {
+ $this->userNameUtils = MediaWikiServices::getInstance()->getUserNameUtils();
+ }
if ( !$this->logger ) {
$this->logger = new \TestLogger();
}
@@ -206,7 +213,8 @@ class AuthManagerTest extends \MediaWikiIntegrationTestCase {
$this->objectFactory,
$this->permManager,
$this->hookContainer,
- $this->readOnlyMode
+ $this->readOnlyMode,
+ $this->userNameUtils
);
$this->manager->setLogger( $this->logger );
$this->managerPriv = TestingAccessWrapper::newFromObject( $this->manager );
diff --git a/tests/phpunit/includes/auth/ConfirmLinkSecondaryAuthenticationProviderTest.php b/tests/phpunit/includes/auth/ConfirmLinkSecondaryAuthenticationProviderTest.php
index 7acaaf0c8e2a..ecf556b2cf96 100644
--- a/tests/phpunit/includes/auth/ConfirmLinkSecondaryAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/ConfirmLinkSecondaryAuthenticationProviderTest.php
@@ -4,6 +4,7 @@ namespace MediaWiki\Auth;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\User\UserNameUtils;
use Psr\Container\ContainerInterface;
use Wikimedia\TestingAccessWrapper;
@@ -143,7 +144,8 @@ class ConfirmLinkSecondaryAuthenticationProviderTest extends \MediaWikiIntegrati
MediaWikiServices::getInstance()->getObjectFactory(),
$this->createNoOpMock( PermissionManager::class ),
MediaWikiServices::getInstance()->getHookContainer(),
- MediaWikiServices::getInstance()->getReadOnlyMode()
+ MediaWikiServices::getInstance()->getReadOnlyMode(),
+ $this->createNoOpMock( UserNameUtils::class )
] )
->getMock();
$manager->expects( $this->any() )->method( 'allowsAuthenticationDataChange' )
@@ -236,10 +238,20 @@ class ConfirmLinkSecondaryAuthenticationProviderTest extends \MediaWikiIntegrati
$request = new \FauxRequest();
$services = $this->createNoOpMock( ContainerInterface::class );
$objectFactory = new \Wikimedia\ObjectFactory( $services );
- $permManager = MediaWikiServices::getInstance()->getPermissionManager();
- $hookContainer = MediaWikiServices::getInstance()->getHookContainer();
- $readOnlyMode = MediaWikiServices::getInstance()->getReadOnlyMode();
- $manager = new AuthManager( $request, $config, $objectFactory, $permManager, $hookContainer, $readOnlyMode );
+ $mwServices = MediaWikiServices::getInstance();
+ $permManager = $mwServices->getPermissionManager();
+ $hookContainer = $mwServices->getHookContainer();
+ $readOnlyMode = $mwServices->getReadOnlyMode();
+ $userNameUtils = $mwServices->getUserNameUtils();
+ $manager = new AuthManager(
+ $request,
+ $config,
+ $objectFactory,
+ $permManager,
+ $hookContainer,
+ $readOnlyMode,
+ $userNameUtils
+ );
$provider->setManager( $manager );
$provider = TestingAccessWrapper::newFromObject( $provider );
diff --git a/tests/phpunit/includes/auth/EmailNotificationSecondaryAuthenticationProviderTest.php b/tests/phpunit/includes/auth/EmailNotificationSecondaryAuthenticationProviderTest.php
index b2d65021f7d9..767f075df240 100644
--- a/tests/phpunit/includes/auth/EmailNotificationSecondaryAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/EmailNotificationSecondaryAuthenticationProviderTest.php
@@ -4,6 +4,7 @@ namespace MediaWiki\Auth;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\User\UserNameUtils;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
use Wikimedia\TestingAccessWrapper;
@@ -66,13 +67,15 @@ class EmailNotificationSecondaryAuthenticationProviderTest extends \MediaWikiInt
$objectFactory = new \Wikimedia\ObjectFactory( $services );
$permManager = $this->createNoOpMock( PermissionManager::class );
$hookContainer = $this->createHookContainer();
+ $userNameUtils = $this->createNoOpMock( UserNameUtils::class );
$authManager = new AuthManager(
new \FauxRequest(),
new \HashConfig(),
$objectFactory,
$permManager,
$hookContainer,
- MediaWikiServices::getInstance()->getReadOnlyMode()
+ MediaWikiServices::getInstance()->getReadOnlyMode(),
+ $userNameUtils
);
$creator = $this->getMockBuilder( \User::class )->getMock();
diff --git a/tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php b/tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php
index d7646e874ff2..0bf0c1c4e90f 100644
--- a/tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/LocalPasswordPrimaryAuthenticationProviderTest.php
@@ -4,6 +4,7 @@ namespace MediaWiki\Auth;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\User\UserNameUtils;
use Psr\Container\ContainerInterface;
use Wikimedia\TestingAccessWrapper;
@@ -44,6 +45,7 @@ class LocalPasswordPrimaryAuthenticationProviderTest extends \MediaWikiIntegrati
$services = $this->createNoOpAbstractMock( ContainerInterface::class );
$objectFactory = new \Wikimedia\ObjectFactory( $services );
$permManager = $this->createNoOpMock( PermissionManager::class );
+ $userNameUtils = $this->createNoOpMock( UserNameUtils::class );
$this->manager = new AuthManager(
new \FauxRequest(),
@@ -51,7 +53,8 @@ class LocalPasswordPrimaryAuthenticationProviderTest extends \MediaWikiIntegrati
$objectFactory,
$permManager,
$hookContainer,
- MediaWikiServices::getInstance()->getReadOnlyMode()
+ MediaWikiServices::getInstance()->getReadOnlyMode(),
+ $userNameUtils
);
}
$this->validity = \Status::newGood();
diff --git a/tests/phpunit/includes/auth/ResetPasswordSecondaryAuthenticationProviderTest.php b/tests/phpunit/includes/auth/ResetPasswordSecondaryAuthenticationProviderTest.php
index 25b4164af76d..7468512ef97c 100644
--- a/tests/phpunit/includes/auth/ResetPasswordSecondaryAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/ResetPasswordSecondaryAuthenticationProviderTest.php
@@ -4,6 +4,7 @@ namespace MediaWiki\Auth;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\User\UserNameUtils;
use Psr\Container\ContainerInterface;
use Wikimedia\TestingAccessWrapper;
@@ -92,8 +93,16 @@ class ResetPasswordSecondaryAuthenticationProviderTest extends \MediaWikiIntegra
$objectFactory = new \Wikimedia\ObjectFactory( $services );
$permManager = $this->createNoOpMock( PermissionManager::class );
$hookContainer = $this->createHookContainer();
- $manager = new AuthManager( new \FauxRequest, $config, $objectFactory,
- $permManager, $hookContainer, MediaWikiServices::getInstance()->getReadOnlyMode() );
+ $userNameUtils = $this->createNoOpMock( UserNameUtils::class );
+ $manager = new AuthManager(
+ new \FauxRequest,
+ $config,
+ $objectFactory,
+ $permManager,
+ $hookContainer,
+ MediaWikiServices::getInstance()->getReadOnlyMode(),
+ $userNameUtils
+ );
$provider->setManager( $manager );
$provider = TestingAccessWrapper::newFromObject( $provider );
diff --git a/tests/phpunit/includes/auth/TemporaryPasswordPrimaryAuthenticationProviderTest.php b/tests/phpunit/includes/auth/TemporaryPasswordPrimaryAuthenticationProviderTest.php
index 1415f3956c4a..70a9b4a3270c 100644
--- a/tests/phpunit/includes/auth/TemporaryPasswordPrimaryAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/TemporaryPasswordPrimaryAuthenticationProviderTest.php
@@ -4,6 +4,7 @@ namespace MediaWiki\Auth;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\User\UserNameUtils;
use Psr\Container\ContainerInterface;
use Wikimedia\ScopedCallback;
use Wikimedia\TestingAccessWrapper;
@@ -44,6 +45,7 @@ class TemporaryPasswordPrimaryAuthenticationProviderTest extends \MediaWikiInteg
$services = $this->createNoOpAbstractMock( ContainerInterface::class );
$objectFactory = new \Wikimedia\ObjectFactory( $services );
$permManager = $this->createNoOpMock( PermissionManager::class );
+ $userNameUtils = $this->createNoOpMock( UserNameUtils::class );
$this->manager = new AuthManager(
new \FauxRequest(),
@@ -51,7 +53,8 @@ class TemporaryPasswordPrimaryAuthenticationProviderTest extends \MediaWikiInteg
$objectFactory,
$permManager,
$hookContainer,
- MediaWikiServices::getInstance()->getReadOnlyMode()
+ MediaWikiServices::getInstance()->getReadOnlyMode(),
+ $userNameUtils
);
}
$this->validity = \Status::newGood();