From: Aryeh Gregor Date: Tue, 9 Apr 2019 09:28:38 +0000 (+0300) Subject: Update PermissionManager to use NamespaceInfo X-Git-Tag: 1.34.0-rc.0~2055^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=1f7ab9c6d06857409d62f8284bb074d18118ea08 Update PermissionManager to use NamespaceInfo Change-Id: I60825beb74d1d0a4e2a9bae0202372cc26752d0c --- diff --git a/includes/Permissions/PermissionManager.php b/includes/Permissions/PermissionManager.php index 1d94e0e889..549b7ba45b 100644 --- a/includes/Permissions/PermissionManager.php +++ b/includes/Permissions/PermissionManager.php @@ -27,7 +27,7 @@ use MediaWiki\Linker\LinkTarget; use MediaWiki\Special\SpecialPageFactory; use MessageSpecifier; use MWException; -use MWNamespace; +use NamespaceInfo; use RequestContext; use SpecialPage; use Title; @@ -78,13 +78,15 @@ class PermissionManager { $whitelistRead, $whitelistReadRegexp, $emailConfirmToEdit, - $blockDisablesLogin + $blockDisablesLogin, + NamespaceInfo $nsInfo ) { $this->specialPageFactory = $specialPageFactory; $this->whitelistRead = $whitelistRead; $this->whitelistReadRegexp = $whitelistReadRegexp; $this->emailConfirmToEdit = $emailConfirmToEdit; $this->blockDisablesLogin = $blockDisablesLogin; + $this->nsInfo = $nsInfo; } /** @@ -597,13 +599,15 @@ class PermissionManager { return $errors; } - $isSubPage = MWNamespace::hasSubpages( $page->getNamespace() ) ? + $isSubPage = $this->nsInfo->hasSubpages( $page->getNamespace() ) ? strpos( $page->getText(), '/' ) !== false : false; if ( $action == 'create' ) { if ( - ( MWNamespace::isTalk( $page->getNamespace() ) && !$user->isAllowed( 'createtalk' ) ) || - ( !MWNamespace::isTalk( $page->getNamespace() ) && !$user->isAllowed( 'createpage' ) ) + ( $this->nsInfo->isTalk( $page->getNamespace() ) && + !$user->isAllowed( 'createtalk' ) ) || + ( !$this->nsInfo->isTalk( $page->getNamespace() ) && + !$user->isAllowed( 'createpage' ) ) ) { $errors[] = $user->isAnon() ? [ 'nocreatetext' ] : [ 'nocreate-loggedin' ]; } @@ -817,7 +821,7 @@ class PermissionManager { } } elseif ( $action == 'move' ) { // Check for immobile pages - if ( !MWNamespace::isMovable( $page->getNamespace() ) ) { + if ( !$this->nsInfo->isMovable( $page->getNamespace() ) ) { // Specific message for this case $errors[] = [ 'immobile-source-namespace', $page->getNsText() ]; } elseif ( !$page->isMovable() ) { @@ -825,7 +829,7 @@ class PermissionManager { $errors[] = [ 'immobile-source-page' ]; } } elseif ( $action == 'move-target' ) { - if ( !MWNamespace::isMovable( $page->getNamespace() ) ) { + if ( !$this->nsInfo->isMovable( $page->getNamespace() ) ) { $errors[] = [ 'immobile-target-namespace', $page->getNsText() ]; } elseif ( !$page->isMovable() ) { $errors[] = [ 'immobile-target-page' ]; diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 750c964830..48a75805e2 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -402,7 +402,9 @@ return [ $config->get( 'WhitelistRead' ), $config->get( 'WhitelistReadRegexp' ), $config->get( 'EmailConfirmToEdit' ), - $config->get( 'BlockDisablesLogin' ) ); + $config->get( 'BlockDisablesLogin' ), + $services->getNamespaceInfo() + ); }, 'PreferencesFactory' => function ( MediaWikiServices $services ) : PreferencesFactory {