Convert first batch of special pages to Authority

Change-Id: I4c6877ef2b1f32610190c6de0f1bcaaa3c835fb0
This commit is contained in:
Petr Pchelko 2021-02-23 16:00:41 -07:00 committed by Ppchelko
parent 4ca69110af
commit 5d39397de3
18 changed files with 38 additions and 155 deletions

View file

@ -1103,10 +1103,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
private function showCreateAccountLink() {
if ( $this->isSignup() ) {
return true;
} elseif ( MediaWikiServices::getInstance()
->getPermissionManager()
->userHasRight( $this->getUser(), 'createaccount' )
) {
} elseif ( $this->getContext()->getAuthority()->isAllowed( 'createaccount' ) ) {
return true;
} else {
return false;

View file

@ -67,7 +67,6 @@ class SpecialPageFactory {
'BrokenRedirects' => [
'class' => \SpecialBrokenRedirects::class,
'services' => [
'PermissionManager',
'ContentHandlerFactory',
'DBLoadBalancer',
'LinkBatchFactory',
@ -85,7 +84,6 @@ class SpecialPageFactory {
'DoubleRedirects' => [
'class' => \SpecialDoubleRedirects::class,
'services' => [
'PermissionManager',
'ContentHandlerFactory',
'LinkBatchFactory',
'DBLoadBalancer',
@ -354,7 +352,6 @@ class SpecialPageFactory {
'Block' => [
'class' => \SpecialBlock::class,
'services' => [
'PermissionManager',
'BlockUtils',
'BlockPermissionCheckerFactory',
'BlockUserFactory',
@ -522,7 +519,6 @@ class SpecialPageFactory {
'services' => [
'WatchedItemStore',
'WatchlistNotificationManager',
'PermissionManager',
'DBLoadBalancer',
'UserOptionsLookup',
]
@ -564,9 +560,6 @@ class SpecialPageFactory {
],
'Tags' => [
'class' => \SpecialTags::class,
'services' => [
'PermissionManager',
]
],
// Media reports and uploads
@ -638,9 +631,6 @@ class SpecialPageFactory {
// Data and tools
'ApiSandbox' => [
'class' => \SpecialApiSandbox::class,
'services' => [
'PermissionManager',
],
],
'Statistics' => [
'class' => \SpecialStatistics::class,
@ -775,7 +765,6 @@ class SpecialPageFactory {
'Export' => [
'class' => \SpecialExport::class,
'services' => [
'PermissionManager',
'DBLoadBalancer',
]
],
@ -806,7 +795,6 @@ class SpecialPageFactory {
'services' => [
'DBLoadBalancer',
'LinkBatchFactory',
'PermissionManager',
'ContentHandlerFactory',
'SearchEngineFactory',
'NamespaceInfo',
@ -824,7 +812,6 @@ class SpecialPageFactory {
'ExpandTemplates' => [
'class' => \SpecialExpandTemplates::class,
'services' => [
'PermissionManager',
'Parser',
'UserOptionsLookup',
],
@ -931,7 +918,6 @@ class SpecialPageFactory {
'Redirect' => [
'class' => \SpecialRedirect::class,
'services' => [
'PermissionManager',
'RepoGroup'
]
],
@ -1036,7 +1022,6 @@ class SpecialPageFactory {
'services' => [
'SearchEngineConfig',
'SearchEngineFactory',
'PermissionManager',
'NamespaceInfo',
'ContentHandlerFactory',
'InterwikiLookup',
@ -1067,7 +1052,6 @@ class SpecialPageFactory {
$this->list['ChangeEmail'] = [
'class' => \SpecialChangeEmail::class,
'services' => [
'PermissionManager',
'AuthManager',
],
];

View file

@ -21,24 +21,14 @@
* @ingroup SpecialPage
*/
use MediaWiki\Permissions\PermissionManager;
/**
* @ingroup SpecialPage
* @since 1.27
*/
class SpecialApiSandbox extends SpecialPage {
/** @var PermissionManager */
private $permManager;
/**
* @param PermissionManager $permManager
*/
public function __construct( PermissionManager $permManager ) {
public function __construct() {
parent::__construct( 'ApiSandbox' );
$this->permManager = $permManager;
}
public function execute( $par ) {
@ -48,7 +38,7 @@ class SpecialApiSandbox extends SpecialPage {
$out->addJsConfigVars(
'apihighlimits',
$this->permManager->userHasRight( $this->getUser(), 'apihighlimits' )
$this->getContext()->getAuthority()->isAllowed( 'apihighlimits' )
);
$out->addModuleStyles( [
'mediawiki.special',

View file

@ -30,7 +30,6 @@ use MediaWiki\Block\DatabaseBlock;
use MediaWiki\Block\Restriction\NamespaceRestriction;
use MediaWiki\Block\Restriction\PageRestriction;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserNamePrefixSearch;
use MediaWiki\User\UserNameUtils;
@ -43,10 +42,6 @@ use Wikimedia\IPUtils;
* @ingroup SpecialPage
*/
class SpecialBlock extends FormSpecialPage {
/**
* @var PermissionManager
*/
private $permissionManager;
/** @var BlockUtils */
private $blockUtils;
@ -84,7 +79,6 @@ class SpecialBlock extends FormSpecialPage {
protected $preErrors = [];
/**
* @param PermissionManager $permissionManager
* @param BlockUtils $blockUtils
* @param BlockPermissionCheckerFactory $blockPermissionCheckerFactory
* @param BlockUserFactory $blockUserFactory
@ -92,7 +86,6 @@ class SpecialBlock extends FormSpecialPage {
* @param UserNamePrefixSearch $userNamePrefixSearch
*/
public function __construct(
PermissionManager $permissionManager,
BlockUtils $blockUtils,
BlockPermissionCheckerFactory $blockPermissionCheckerFactory,
BlockUserFactory $blockUserFactory,
@ -101,7 +94,6 @@ class SpecialBlock extends FormSpecialPage {
) {
parent::__construct( 'Block', 'block' );
$this->permissionManager = $permissionManager;
$this->blockUtils = $blockUtils;
$this->blockPermissionCheckerFactory = $blockPermissionCheckerFactory;
$this->blockUserFactory = $blockUserFactory;
@ -341,7 +333,7 @@ class SpecialBlock extends FormSpecialPage {
];
# Allow some users to hide name from block log, blocklist and listusers
if ( $this->permissionManager->userHasRight( $user, 'hideuser' ) ) {
if ( $this->getContext()->getAuthority()->isAllowed( 'hideuser' ) ) {
$a['HideUser'] = [
'type' => 'check',
'label-message' => 'ipbhidename',
@ -435,9 +427,7 @@ class SpecialBlock extends FormSpecialPage {
// If the username was hidden (ipb_deleted == 1), don't show the reason
// unless this user also has rights to hideuser: T37839
if ( !$block->getHideName() || $this->permissionManager
->userHasRight( $this->getUser(), 'hideuser' )
) {
if ( !$block->getHideName() || $this->getContext()->getAuthority()->isAllowed( 'hideuser' ) ) {
$fields['Reason']['default'] = $block->getReasonComment()->text;
} else {
$fields['Reason']['default'] = '';
@ -603,10 +593,8 @@ class SpecialBlock extends FormSpecialPage {
$this->msg( 'ipb-blocklist' )->text()
);
$user = $this->getUser();
# Link to edit the block dropdown reasons, if applicable
if ( $this->permissionManager->userHasRight( $user, 'editinterface' ) ) {
if ( $this->getContext()->getAuthority()->isAllowed( 'editinterface' ) ) {
$links[] = $linkRenderer->makeKnownLink(
$this->msg( 'ipbreason-dropdown' )->inContentLanguage()->getTitle(),
$this->msg( 'ipb-edit-dropdown' )->text(),
@ -640,7 +628,7 @@ class SpecialBlock extends FormSpecialPage {
$text .= $out;
# Add suppression block entries if allowed
if ( $this->permissionManager->userHasRight( $user, 'suppressionlog' ) ) {
if ( $this->getContext()->getAuthority()->isAllowed( 'suppressionlog' ) ) {
LogEventsList::showLogExtract(
$out,
'suppress',

View file

@ -23,7 +23,6 @@
use MediaWiki\Cache\LinkBatchFactory;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Permissions\PermissionManager;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\IResultWrapper;
@ -36,26 +35,20 @@ use Wikimedia\Rdbms\IResultWrapper;
*/
class SpecialBrokenRedirects extends QueryPage {
/** @var PermissionManager */
private $permissionManager;
/** @var IContentHandlerFactory */
private $contentHandlerFactory;
/**
* @param PermissionManager $permissionManager
* @param IContentHandlerFactory $contentHandlerFactory
* @param ILoadBalancer $loadBalancer
* @param LinkBatchFactory $linkBatchFactory
*/
public function __construct(
PermissionManager $permissionManager,
IContentHandlerFactory $contentHandlerFactory,
ILoadBalancer $loadBalancer,
LinkBatchFactory $linkBatchFactory
) {
parent::__construct( 'BrokenRedirects' );
$this->permissionManager = $permissionManager;
$this->contentHandlerFactory = $contentHandlerFactory;
$this->setDBLoadBalancer( $loadBalancer );
$this->setLinkBatchFactory( $linkBatchFactory );
@ -155,7 +148,7 @@ class SpecialBrokenRedirects extends QueryPage {
// if the page is editable, add an edit link
if (
// check user permissions
$this->permissionManager->userHasRight( $this->getUser(), 'edit' ) &&
$this->getContext()->getAuthority()->isAllowed( 'edit' ) &&
// check, if the content model is editable through action=edit
$this->contentHandlerFactory->getContentHandler( $fromObj->getContentModel() )
->supportsDirectEditing()
@ -172,7 +165,7 @@ class SpecialBrokenRedirects extends QueryPage {
$out = $from . $this->msg( 'word-separator' )->escaped();
if ( $this->permissionManager->userHasRight( $this->getUser(), 'delete' ) ) {
if ( $this->getContext()->getAuthority()->isAllowed( 'delete' ) ) {
$links[] = $linkRenderer->makeKnownLink(
$fromObj,
$this->msg( 'brokenredirects-delete' )->text(),

View file

@ -23,7 +23,6 @@
use MediaWiki\Auth\AuthManager;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Permissions\PermissionManager;
/**
* Let users change their email address.
@ -36,17 +35,12 @@ class SpecialChangeEmail extends FormSpecialPage {
*/
private $status;
/** @var PermissionManager */
private $permManager;
/**
* @param PermissionManager $permManager
* @param AuthManager $authManager
*/
public function __construct( PermissionManager $permManager, AuthManager $authManager ) {
public function __construct( AuthManager $authManager ) {
parent::__construct( 'ChangeEmail', 'editmyprivateinfo' );
$this->permManager = $permManager;
$this->setAuthManager( $authManager );
}
@ -85,7 +79,7 @@ class SpecialChangeEmail extends FormSpecialPage {
// This could also let someone check the current email address, so
// require both permissions.
if ( !$this->permManager->userHasRight( $this->getUser(), 'viewmyprivateinfo' ) ) {
if ( !$this->getContext()->getAuthority()->isAllowed( 'viewmyprivateinfo' ) ) {
throw new PermissionsError( 'viewmyprivateinfo' );
}

View file

@ -22,7 +22,6 @@
*/
use MediaWiki\Cache\LinkBatchFactory;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Permissions\PermissionManager;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\IResultWrapper;
@ -35,9 +34,6 @@ use Wikimedia\Rdbms\IResultWrapper;
*/
class SpecialDoubleRedirects extends QueryPage {
/** @var PermissionManager */
private $permissionManager;
/** @var IContentHandlerFactory */
private $contentHandlerFactory;
@ -48,19 +44,16 @@ class SpecialDoubleRedirects extends QueryPage {
private $dbr;
/**
* @param PermissionManager $permissionManager
* @param IContentHandlerFactory $contentHandlerFactory
* @param LinkBatchFactory $linkBatchFactory
* @param ILoadBalancer $loadBalancer
*/
public function __construct(
PermissionManager $permissionManager,
IContentHandlerFactory $contentHandlerFactory,
LinkBatchFactory $linkBatchFactory,
ILoadBalancer $loadBalancer
) {
parent::__construct( 'DoubleRedirects' );
$this->permissionManager = $permissionManager;
$this->contentHandlerFactory = $contentHandlerFactory;
$this->linkBatchFactory = $linkBatchFactory;
$this->setDBLoadBalancer( $loadBalancer );
@ -180,7 +173,7 @@ class SpecialDoubleRedirects extends QueryPage {
// if the page is editable, add an edit link
if (
// check user permissions
$this->permissionManager->userHasRight( $this->getUser(), 'edit' ) &&
$this->getContext()->getAuthority()->isAllowed( 'edit' ) &&
// check, if the content model is editable through action=edit
$this->contentHandlerFactory->getContentHandler( $titleA->getContentModel() )
->supportsDirectEditing()

View file

@ -21,7 +21,6 @@
* @ingroup SpecialPage
*/
use MediaWiki\Permissions\PermissionManager;
use MediaWiki\User\UserOptionsLookup;
/**
@ -47,9 +46,6 @@ class SpecialExpandTemplates extends SpecialPage {
/** @var int Maximum size in bytes to include. 50MB allows fixing those huge pages */
private const MAX_INCLUDE_SIZE = 50000000;
/** @var PermissionManager */
private $permissionManager;
/** @var Parser */
private $parser;
@ -57,17 +53,14 @@ class SpecialExpandTemplates extends SpecialPage {
private $userOptionsLookup;
/**
* @param PermissionManager $permissionManager
* @param Parser $parser
* @param UserOptionsLookup $userOptionsLookup
*/
public function __construct(
PermissionManager $permissionManager,
Parser $parser,
UserOptionsLookup $userOptionsLookup
) {
parent::__construct( 'ExpandTemplates' );
$this->permissionManager = $permissionManager;
$this->parser = $parser;
$this->userOptionsLookup = $userOptionsLookup;
}
@ -291,7 +284,7 @@ class SpecialExpandTemplates extends SpecialPage {
// allowed and a valid edit token is not provided (T73111). However, MediaWiki
// does not currently provide logged-out users with CSRF protection; in that case,
// do not show the preview unless anonymous editing is allowed.
if ( $user->isAnon() && !$this->permissionManager->userHasRight( $user, 'edit' ) ) {
if ( $user->isAnon() && !$this->getContext()->getAuthority()->isAllowed( 'edit' ) ) {
$error = [ 'expand_templates_preview_fail_html_anon' ];
} elseif ( !$user->matchEditToken( $request->getVal( 'wpEditToken' ), '', $request ) ) {
$error = [ 'expand_templates_preview_fail_html' ];

View file

@ -24,7 +24,6 @@
*/
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Permissions\PermissionManager;
use Wikimedia\Rdbms\ILoadBalancer;
/**
@ -35,22 +34,16 @@ use Wikimedia\Rdbms\ILoadBalancer;
class SpecialExport extends SpecialPage {
protected $curonly, $doExport, $pageLinkDepth, $templates;
/** @var PermissionManager */
private $permManager;
/** @var ILoadBalancer */
private $loadBalancer;
/**
* @param PermissionManager $permManager
* @param ILoadBalancer $loadBalancer
*/
public function __construct(
PermissionManager $permManager,
ILoadBalancer $loadBalancer
) {
parent::__construct( 'Export' );
$this->permManager = $permManager;
$this->loadBalancer = $loadBalancer;
}
@ -343,7 +336,7 @@ class SpecialExport extends SpecialPage {
* @return bool
*/
protected function userCanOverrideExportDepth() {
return $this->permManager->userHasRight( $this->getUser(), 'override-export-depth' );
return $this->getContext()->getAuthority()->isAllowed( 'override-export-depth' );
}
/**
@ -412,7 +405,7 @@ class SpecialExport extends SpecialPage {
continue;
}
if ( !$this->permManager->userCan( 'read', $this->getUser(), $title ) ) {
if ( !$this->getContext()->getAuthority()->authorizeRead( 'read', $title ) ) {
// @todo Perhaps output an <error> tag or something.
continue;
}

View file

@ -21,8 +21,6 @@
* @ingroup SpecialPage
*/
use MediaWiki\Permissions\PermissionManager;
/**
* A special page that redirects to: the user for a numeric user id,
* the file for a given filename, or the page for a given revision id.
@ -50,22 +48,17 @@ class SpecialRedirect extends FormSpecialPage {
*/
protected $mValue;
/** @var PermissionManager */
private $permManager;
/** @var RepoGroup */
private $repoGroup;
/**
* @param PermissionManager $permManager
* @param RepoGroup $repoGroup
*/
public function __construct( PermissionManager $permManager, RepoGroup $repoGroup ) {
public function __construct( RepoGroup $repoGroup ) {
parent::__construct( 'Redirect' );
$this->mType = null;
$this->mValue = null;
$this->permManager = $permManager;
$this->repoGroup = $repoGroup;
}
@ -96,9 +89,7 @@ class SpecialRedirect extends FormSpecialPage {
// Message: redirect-not-exists
return Status::newFatal( $this->getMessagePrefix() . '-not-exists' );
}
if ( $user->isHidden() &&
!$this->permManager->userHasRight( $this->getUser(), 'hideuser' )
) {
if ( $user->isHidden() && !$this->getContext()->getAuthority()->isAllowed( 'hideuser' ) ) {
throw new PermissionsError( null, [ 'badaccess-group0' ] );
}

View file

@ -26,7 +26,6 @@
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Interwiki\InterwikiLookup;
use MediaWiki\Languages\LanguageConverterFactory;
use MediaWiki\Permissions\PermissionManager;
use MediaWiki\Search\SearchWidgets\BasicSearchResultSetWidget;
use MediaWiki\Search\SearchWidgets\FullSearchResultWidget;
use MediaWiki\Search\SearchWidgets\InterwikiSearchResultSetWidget;
@ -99,9 +98,6 @@ class SpecialSearch extends SpecialPage {
/** @var SearchEngineFactory */
private $searchEngineFactory;
/** @var PermissionManager */
private $permissionManager;
/** @var NamespaceInfo */
private $nsInfo;
@ -131,7 +127,6 @@ class SpecialSearch extends SpecialPage {
/**
* @param SearchEngineConfig $searchConfig
* @param SearchEngineFactory $searchEngineFactory
* @param PermissionManager $permissionManager
* @param NamespaceInfo $nsInfo
* @param IContentHandlerFactory $contentHandlerFactory
* @param InterwikiLookup $interwikiLookup
@ -142,7 +137,6 @@ class SpecialSearch extends SpecialPage {
public function __construct(
SearchEngineConfig $searchConfig,
SearchEngineFactory $searchEngineFactory,
PermissionManager $permissionManager,
NamespaceInfo $nsInfo,
IContentHandlerFactory $contentHandlerFactory,
InterwikiLookup $interwikiLookup,
@ -153,7 +147,6 @@ class SpecialSearch extends SpecialPage {
parent::__construct( 'Search' );
$this->searchConfig = $searchConfig;
$this->searchEngineFactory = $searchEngineFactory;
$this->permissionManager = $permissionManager;
$this->nsInfo = $nsInfo;
$this->contentHandlerFactory = $contentHandlerFactory;
$this->interwikiLookup = $interwikiLookup;
@ -600,8 +593,8 @@ class SpecialSearch extends SpecialPage {
} elseif (
$this->contentHandlerFactory->getContentHandler( $title->getContentModel() )
->supportsDirectEditing()
&& $this->permissionManager->quickUserCan( 'create', $this->getUser(), $title )
&& $this->permissionManager->quickUserCan( 'edit', $this->getUser(), $title )
&& $this->getContext()->getAuthority()->probablyCan( 'create', $title )
&& $this->getContext()->getAuthority()->probablyCan( 'edit', $title )
) {
$messageName = 'searchmenu-new';
}

View file

@ -21,8 +21,6 @@
* @ingroup SpecialPage
*/
use MediaWiki\Permissions\PermissionManager;
/**
* A special page that lists tags for edits
*
@ -45,15 +43,8 @@ class SpecialTags extends SpecialPage {
*/
protected $softwareActivatedTags;
/** @var PermissionManager */
private $permissionManager;
/**
* @param PermissionManager $permissionManager
*/
public function __construct( PermissionManager $permissionManager ) {
public function __construct() {
parent::__construct( 'Tags' );
$this->permissionManager = $permissionManager;
}
public function execute( $par ) {
@ -85,10 +76,10 @@ class SpecialTags extends SpecialPage {
$out->setPageTitle( $this->msg( 'tags-title' ) );
$out->wrapWikiMsg( "<div class='mw-tags-intro'>\n$1\n</div>", 'tags-intro' );
$user = $this->getUser();
$userCanManage = $this->permissionManager->userHasRight( $user, 'managechangetags' );
$userCanDelete = $this->permissionManager->userHasRight( $user, 'deletechangetags' );
$userCanEditInterface = $this->permissionManager->userHasRight( $user, 'editinterface' );
$authority = $this->getContext()->getAuthority();
$userCanManage = $authority->isAllowed( 'managechangetags' );
$userCanDelete = $authority->isAllowed( 'deletechangetags' );
$userCanEditInterface = $authority->isAllowed( 'editinterface' );
// Show form to create a tag
if ( $userCanManage ) {
@ -344,8 +335,8 @@ class SpecialTags extends SpecialPage {
}
protected function showDeleteTagForm( $tag ) {
$user = $this->getUser();
if ( !$this->permissionManager->userHasRight( $user, 'deletechangetags' ) ) {
$authority = $this->getContext()->getAuthority();
if ( !$authority->isAllowed( 'deletechangetags' ) ) {
throw new PermissionsError( 'deletechangetags' );
}
@ -354,7 +345,7 @@ class SpecialTags extends SpecialPage {
$out->addBacklinkSubtitle( $this->getPageTitle() );
// is the tag actually able to be deleted?
$canDeleteResult = ChangeTags::canDeleteTag( $tag, $user );
$canDeleteResult = ChangeTags::canDeleteTag( $tag, $authority );
if ( !$canDeleteResult->isGood() ) {
$out->wrapWikiTextAsInterface( 'error', $canDeleteResult->getWikiText() );
if ( !$canDeleteResult->isOK() ) {
@ -404,8 +395,8 @@ class SpecialTags extends SpecialPage {
protected function showActivateDeactivateForm( $tag, $activate ) {
$actionStr = $activate ? 'activate' : 'deactivate';
$user = $this->getUser();
if ( !$this->permissionManager->userHasRight( $user, 'managechangetags' ) ) {
$authority = $this->getContext()->getAuthority();
if ( !$authority->isAllowed( 'managechangetags' ) ) {
throw new PermissionsError( 'managechangetags' );
}
@ -415,8 +406,11 @@ class SpecialTags extends SpecialPage {
$out->addBacklinkSubtitle( $this->getPageTitle() );
// is it possible to do this?
$func = $activate ? 'canActivateTag' : 'canDeactivateTag';
$result = ChangeTags::$func( $tag, $user );
if ( $activate ) {
$result = ChangeTags::canActivateTag( $tag, $authority );
} else {
$result = ChangeTags::canDeactivateTag( $tag, $authority );
}
if ( !$result->isGood() ) {
$out->wrapWikiTextAsInterface( 'error', $result->getWikiText() );
if ( !$result->isOK() ) {

View file

@ -21,7 +21,6 @@
* @ingroup SpecialPage
*/
use MediaWiki\Permissions\PermissionManager;
use MediaWiki\User\UserOptionsLookup;
use MediaWiki\User\WatchlistNotificationManager;
use Wikimedia\Rdbms\IDatabase;
@ -49,9 +48,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
/** @var WatchlistNotificationManager */
private $watchlistNotificationManager;
/** @var PermissionManager */
private $permissionManager;
/** @var ILoadBalancer */
private $loadBalancer;
@ -64,14 +60,12 @@ class SpecialWatchlist extends ChangesListSpecialPage {
/**
* @param WatchedItemStoreInterface $watchedItemStore
* @param WatchlistNotificationManager $watchlistNotificationManager
* @param PermissionManager $permissionManager
* @param ILoadBalancer $loadBalancer
* @param UserOptionsLookup $userOptionsLookup
*/
public function __construct(
WatchedItemStoreInterface $watchedItemStore,
WatchlistNotificationManager $watchlistNotificationManager,
PermissionManager $permissionManager,
ILoadBalancer $loadBalancer,
UserOptionsLookup $userOptionsLookup
) {
@ -79,7 +73,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
$this->watchedItemStore = $watchedItemStore;
$this->watchlistNotificationManager = $watchlistNotificationManager;
$this->permissionManager = $permissionManager;
$this->loadBalancer = $loadBalancer;
$this->userOptionsLookup = $userOptionsLookup;
$this->maxDays = $this->getConfig()->get( 'RCMaxAge' ) / ( 3600 * 24 );
@ -428,9 +421,10 @@ class SpecialWatchlist extends ChangesListSpecialPage {
// Log entries with DELETED_ACTION must not show up unless the user has
// the necessary rights.
if ( !$this->permissionManager->userHasRight( $user, 'deletedhistory' ) ) {
$authority = $this->getContext()->getAuthority();
if ( !$authority->isAllowed( 'deletedhistory' ) ) {
$bitmask = LogPage::DELETED_ACTION;
} elseif ( !$this->permissionManager->userHasAnyRight( $user, 'suppressrevision', 'viewsuppressed' ) ) {
} elseif ( !$authority->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
$bitmask = LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED;
} else {
$bitmask = 0;

View file

@ -23,7 +23,6 @@
use MediaWiki\Cache\LinkBatchFactory;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Permissions\PermissionManager;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
@ -47,9 +46,6 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
/** @var LinkBatchFactory */
private $linkBatchFactory;
/** @var PermissionManager */
private $permissionManager;
/** @var IContentHandlerFactory */
private $contentHandlerFactory;
@ -64,7 +60,6 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
/**
* @param ILoadBalancer $loadBalancer
* @param LinkBatchFactory $linkBatchFactory
* @param PermissionManager $permissionManager
* @param IContentHandlerFactory $contentHandlerFactory
* @param SearchEngineFactory $searchEngineFactory
* @param NamespaceInfo $namespaceInfo
@ -72,7 +67,6 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
public function __construct(
ILoadBalancer $loadBalancer,
LinkBatchFactory $linkBatchFactory,
PermissionManager $permissionManager,
IContentHandlerFactory $contentHandlerFactory,
SearchEngineFactory $searchEngineFactory,
NamespaceInfo $namespaceInfo
@ -80,7 +74,6 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
parent::__construct( 'Whatlinkshere' );
$this->loadBalancer = $loadBalancer;
$this->linkBatchFactory = $linkBatchFactory;
$this->permissionManager = $permissionManager;
$this->contentHandlerFactory = $contentHandlerFactory;
$this->searchEngineFactory = $searchEngineFactory;
$this->namespaceInfo = $namespaceInfo;
@ -489,7 +482,7 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
// if the page is editable, add an edit link
if (
// check user permissions
$this->permissionManager->userHasRight( $this->getUser(), 'edit' ) &&
$this->getContext()->getAuthority()->isAllowed( 'edit' ) &&
// check, if the content model is editable through action=edit
$this->contentHandlerFactory->getContentHandler( $target->getContentModel() )
->supportsDirectEditing()

View file

@ -20,7 +20,6 @@ class SpecialBlockTest extends SpecialPageTestBase {
protected function newSpecialPage() {
$services = MediaWikiServices::getInstance();
return new SpecialBlock(
$services->getPermissionManager(),
$services->getBlockUtils(),
$services->getBlockPermissionCheckerFactory(),
$services->getBlockUserFactory(),

View file

@ -26,7 +26,6 @@ class SpecialRedirectTest extends MediaWikiIntegrationTestCase {
*/
public function testDispatch( $method, $type, $value, $expectedStatus ) {
$page = new SpecialRedirect(
MediaWikiServices::getInstance()->getPermissionManager(),
MediaWikiServices::getInstance()->getRepoGroup()
);

View file

@ -17,7 +17,6 @@ class SpecialSearchTest extends MediaWikiIntegrationTestCase {
return new SpecialSearch(
$services->getSearchEngineConfig(),
$services->getSearchEngineFactory(),
$services->getPermissionManager(),
$services->getNamespaceInfo(),
$services->getContentHandlerFactory(),
$services->getInterwikiLookup(),
@ -256,7 +255,6 @@ class SpecialSearchTest extends MediaWikiIntegrationTestCase {
->setConstructorArgs( [
$services->getSearchEngineConfig(),
$services->getSearchEngineFactory(),
$services->getPermissionManager(),
$services->getNamespaceInfo(),
$services->getContentHandlerFactory(),
$services->getInterwikiLookup(),
@ -368,7 +366,6 @@ class SpecialSearchTest extends MediaWikiIntegrationTestCase {
->setConstructorArgs( [
$services->getSearchEngineConfig(),
$services->getSearchEngineFactory(),
$services->getPermissionManager(),
$services->getNamespaceInfo(),
$services->getContentHandlerFactory(),
$services->getInterwikiLookup(),
@ -439,7 +436,6 @@ class SpecialSearchTest extends MediaWikiIntegrationTestCase {
$specialSearch = new SpecialSearch(
$services->getSearchEngineConfig(),
$mockSearchEngineFactory,
$services->getPermissionManager(),
$services->getNamespaceInfo(),
$services->getContentHandlerFactory(),
$services->getInterwikiLookup(),

View file

@ -48,7 +48,6 @@ class SpecialWatchlistTest extends SpecialPageTestBase {
return new SpecialWatchlist(
$services->getWatchedItemStore(),
$services->getWatchlistNotificationManager(),
$services->getPermissionManager(),
$services->getDBLoadBalancer(),
$services->getUserOptionsLookup()
);