From f1914810a7b7b4946863a324c6f7c7f08de56a96 Mon Sep 17 00:00:00 2001 From: Petr Pchelko Date: Fri, 23 Aug 2019 16:53:15 -0700 Subject: [PATCH] Remove usages of Title::quickUserCan Change-Id: Ifa53e0ec800e23dc4184d133a100fb9378dfee9e --- includes/OutputPage.php | 29 ++++++++++++------- includes/Permissions/PermissionManager.php | 19 ++++++++++++ includes/TemplatesOnThisPageFormatter.php | 9 ++++-- includes/actions/pagers/HistoryPager.php | 7 +++-- includes/changes/ChangesList.php | 4 ++- includes/diff/DifferenceEngine.php | 21 +++++++++----- includes/page/Article.php | 13 +++++---- includes/page/ImageHistoryList.php | 9 +++--- includes/page/ImagePage.php | 3 +- includes/skins/Skin.php | 11 +++++-- includes/skins/SkinTemplate.php | 29 ++++++++++--------- includes/specials/SpecialMovepage.php | 3 +- includes/specials/SpecialSearch.php | 3 +- includes/specials/pagers/ContribsPager.php | 6 ++-- .../Permissions/PermissionManagerTest.php | 22 +++++++------- 15 files changed, 121 insertions(+), 67 deletions(-) diff --git a/includes/OutputPage.php b/includes/OutputPage.php index b2ca53aa18..9af16d39f8 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -3311,12 +3311,10 @@ class OutputPage extends ContextSource { $vars['wgUserVariant'] = $contLang->getPreferredVariant(); } // Same test as SkinTemplate - $vars['wgIsProbablyEditable'] = $title->quickUserCan( 'edit', $user ) - && ( $title->exists() || $title->quickUserCan( 'create', $user ) ); + $vars['wgIsProbablyEditable'] = $this->userCanEditOrCreate( $user, $title ); - $vars['wgRelevantPageIsProbablyEditable'] = $relevantTitle - && $relevantTitle->quickUserCan( 'edit', $user ) - && ( $relevantTitle->exists() || $relevantTitle->quickUserCan( 'create', $user ) ); + $vars['wgRelevantPageIsProbablyEditable'] = $relevantTitle && + $this->userCanEditOrCreate( $user, $relevantTitle ); foreach ( $title->getRestrictionTypes() as $type ) { // Following keys are set in $vars: @@ -3383,6 +3381,21 @@ class OutputPage extends ContextSource { return true; } + /** + * @param User $user + * @param LinkTarget $title + * @return bool + */ + private function userCanEditOrCreate( + User $user, + LinkTarget $title + ) { + $pm = MediaWikiServices::getInstance()->getPermissionManager(); + return $pm->quickUserCan( 'edit', $user, $title ) + && ( $this->getTitle()->exists() || + $pm->quickUserCan( 'create', $user, $title ) ); + } + /** * @return array Array in format "link name or number => 'link html'". */ @@ -3447,11 +3460,7 @@ class OutputPage extends ContextSource { # Universal edit button if ( $config->get( 'UniversalEditButton' ) && $this->isArticleRelated() ) { - $user = $this->getUser(); - if ( $this->getTitle()->quickUserCan( 'edit', $user ) - && ( $this->getTitle()->exists() || - $this->getTitle()->quickUserCan( 'create', $user ) ) - ) { + if ( $this->userCanEditOrCreate( $this->getUser(), $this->getTitle() ) ) { // Original UniversalEditButton $msg = $this->msg( 'edit' )->text(); $tags['universal-edit-button'] = Html::element( 'link', [ diff --git a/includes/Permissions/PermissionManager.php b/includes/Permissions/PermissionManager.php index f9ad3ebb93..37791d0a14 100644 --- a/includes/Permissions/PermissionManager.php +++ b/includes/Permissions/PermissionManager.php @@ -231,6 +231,25 @@ class PermissionManager { return !count( $this->getPermissionErrorsInternal( $action, $user, $page, $rigor, true ) ); } + /** + * A convenience method for calling PermissionManager::userCan + * with PermissionManager::RIGOR_QUICK + * + * Suitable for use for nonessential UI controls in common cases, but + * _not_ for functional access control. + * May provide false positives, but should never provide a false negative. + * + * @see PermissionManager::userCan() + * + * @param string $action + * @param User $user + * @param LinkTarget $page + * @return bool + */ + public function quickUserCan( $action, User $user, LinkTarget $page ) { + return $this->userCan( $action, $user, $page, self::RIGOR_QUICK ); + } + /** * Can $user perform $action on a page? * diff --git a/includes/TemplatesOnThisPageFormatter.php b/includes/TemplatesOnThisPageFormatter.php index bca1ef651a..215e4ec813 100644 --- a/includes/TemplatesOnThisPageFormatter.php +++ b/includes/TemplatesOnThisPageFormatter.php @@ -20,6 +20,7 @@ use MediaWiki\Linker\LinkRenderer; use MediaWiki\Linker\LinkTarget; +use MediaWiki\MediaWikiServices; /** * Handles formatting for the "templates used on this page" @@ -158,11 +159,13 @@ class TemplatesOnThisPageFormatter { * Return a link to the edit page, with the text * saying "view source" if the user can't edit the page * - * @param Title $titleObj + * @param LinkTarget $titleObj * @return string */ - private function buildEditLink( Title $titleObj ) { - if ( $titleObj->quickUserCan( 'edit', $this->context->getUser() ) ) { + private function buildEditLink( LinkTarget $titleObj ) { + if ( MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'edit', $this->context->getUser(), $titleObj ) + ) { $linkMsg = 'editlink'; } else { $linkMsg = 'viewsourcelink'; diff --git a/includes/actions/pagers/HistoryPager.php b/includes/actions/pagers/HistoryPager.php index fd2fbd0d99..f178911ab3 100644 --- a/includes/actions/pagers/HistoryPager.php +++ b/includes/actions/pagers/HistoryPager.php @@ -401,8 +401,11 @@ class HistoryPager extends ReverseChronologicalPager { $tools = []; # Rollback and undo links - if ( $prevRev && $this->getTitle()->quickUserCan( 'edit', $user ) ) { - if ( $latest && $this->getTitle()->quickUserCan( 'rollback', $user ) ) { + + if ( $prevRev && $permissionManager->quickUserCan( 'edit', $user, $this->getTitle() ) ) { + if ( $latest && $permissionManager->quickUserCan( 'rollback', + $user, $this->getTitle() ) + ) { // Get a rollback link without the brackets $rollbackLink = Linker::generateRollback( $rev, diff --git a/includes/changes/ChangesList.php b/includes/changes/ChangesList.php index 78078770b2..0382d7360f 100644 --- a/includes/changes/ChangesList.php +++ b/includes/changes/ChangesList.php @@ -716,7 +716,9 @@ class ChangesList extends ContextSource { /** Check for rollback permissions, disallow special pages, and only * show a link on the top-most revision */ - if ( $title->quickUserCan( 'rollback', $this->getUser() ) ) { + if ( MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'rollback', $this->getUser(), $title ) + ) { $rev = new Revision( [ 'title' => $title, 'id' => $rc->mAttribs['rc_this_oldid'], diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index 9723d5aa57..b8697e53bd 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -22,7 +22,6 @@ */ use MediaWiki\MediaWikiServices; -use MediaWiki\Permissions\PermissionManager; use MediaWiki\Revision\RevisionRecord; use MediaWiki\Revision\SlotRecord; use MediaWiki\Storage\NameTableAccessException; @@ -542,8 +541,8 @@ class DifferenceEngine extends ContextSource { $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); - if ( $samePage && $this->mNewPage && $permissionManager->userCan( - 'edit', $user, $this->mNewPage, PermissionManager::RIGOR_QUICK + if ( $samePage && $this->mNewPage && $permissionManager->quickUserCan( + 'edit', $user, $this->mNewPage ) ) { if ( $this->mNewRev->isCurrent() && $permissionManager->userCan( 'rollback', $user, $this->mNewPage @@ -766,12 +765,14 @@ class DifferenceEngine extends ContextSource { protected function getMarkPatrolledLinkInfo() { $user = $this->getUser(); $config = $this->getConfig(); + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); // Prepare a change patrol link, if applicable if ( // Is patrolling enabled and the user allowed to? $config->get( 'UseRCPatrol' ) && - $this->mNewPage && $this->mNewPage->quickUserCan( 'patrol', $user ) && + $this->mNewPage && + $permissionManager->quickUserCan( 'patrol', $user, $this->mNewPage ) && // Only do this if the revision isn't more than 6 hours older // than the Max RC age (6h because the RC might not be cleaned out regularly) RecentChange::isInRCLifespan( $this->mNewRev->getTimestamp(), 21600 ) @@ -804,8 +805,7 @@ class DifferenceEngine extends ContextSource { // Build the link if ( $rcid ) { $this->getOutput()->preventClickjacking(); - if ( MediaWikiServices::getInstance()->getPermissionManager() - ->userHasRight( $user, 'writeapi' ) ) { + if ( $permissionManager->userHasRight( $user, 'writeapi' ) ) { $this->getOutput()->addModules( 'mediawiki.page.patrol.ajax' ); } @@ -900,7 +900,11 @@ class DifferenceEngine extends ContextSource { ) { $out->addParserOutput( $parserOutput, [ 'enableSectionEditLinks' => $this->mNewRev->isCurrent() - && $this->mNewRev->getTitle()->quickUserCan( 'edit', $this->getUser() ), + && MediaWikiServices::getInstance()->getPermissionManager()->quickUserCan( + 'edit', + $this->getUser(), + $this->mNewRev->getTitle() + ) ] ); } } @@ -1557,7 +1561,8 @@ class DifferenceEngine extends ContextSource { $editQuery['oldid'] = $rev->getId(); } - $key = $title->quickUserCan( 'edit', $user ) ? 'editold' : 'viewsourceold'; + $key = MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'edit', $user, $title ) ? 'editold' : 'viewsourceold'; $msg = $this->msg( $key )->escaped(); $editLink = $this->msg( 'parentheses' )->rawParams( Linker::linkKnown( $title, $msg, [], $editQuery ) )->escaped(); diff --git a/includes/page/Article.php b/includes/page/Article.php index fcfb83de69..d8cd1c5bc8 100644 --- a/includes/page/Article.php +++ b/includes/page/Article.php @@ -635,8 +635,9 @@ class Article implements Page { if ( $outputPage->isPrintable() ) { $parserOptions->setIsPrintable( true ); $poOptions['enableSectionEditLinks'] = false; - } elseif ( $this->viewIsRenderAction - || !$this->isCurrent() || !$this->getTitle()->quickUserCan( 'edit', $user ) + } elseif ( $this->viewIsRenderAction || !$this->isCurrent() || + !MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'edit', $user, $this->getTitle() ) ) { $poOptions['enableSectionEditLinks'] = false; } @@ -1181,7 +1182,8 @@ class Article implements Page { $title = $this->getTitle(); $rc = false; - if ( !$title->quickUserCan( 'patrol', $user ) + if ( !MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'patrol', $user, $title ) || !( $wgUseRCPatrol || $wgUseNPPatrol || ( $wgUseFilePatrol && $title->inNamespace( NS_FILE ) ) ) ) { @@ -1450,6 +1452,7 @@ class Article implements Page { # Show error message $oldid = $this->getOldID(); + $pm = MediaWikiServices::getInstance()->getPermissionManager(); if ( !$oldid && $title->getNamespace() === NS_MEDIAWIKI && $title->hasSourceText() ) { // use fake Content object for system message $parserOptions = ParserOptions::newCanonical( 'canonical' ); @@ -1457,8 +1460,8 @@ class Article implements Page { } else { if ( $oldid ) { $text = wfMessage( 'missing-revision', $oldid )->plain(); - } elseif ( $title->quickUserCan( 'create', $this->getContext()->getUser() ) - && $title->quickUserCan( 'edit', $this->getContext()->getUser() ) + } elseif ( $pm->quickUserCan( 'create', $this->getContext()->getUser(), $title ) && + $pm->quickUserCan( 'edit', $this->getContext()->getUser(), $title ) ) { $message = $this->getContext()->getUser()->isLoggedIn() ? 'noarticletext' : 'noarticletextanon'; $text = wfMessage( $message )->plain(); diff --git a/includes/page/ImageHistoryList.php b/includes/page/ImageHistoryList.php index 2de82bf760..dc755410e1 100644 --- a/includes/page/ImageHistoryList.php +++ b/includes/page/ImageHistoryList.php @@ -118,6 +118,7 @@ class ImageHistoryList extends ContextSource { public function imageHistoryLine( $iscur, $file ) { $user = $this->getUser(); $lang = $this->getLanguage(); + $pm = MediaWikiServices::getInstance()->getPermissionManager(); $timestamp = wfTimestamp( TS_MW, $file->getTimestamp() ); $img = $iscur ? $file->getName() : $file->getArchiveName(); $userId = $file->getUser( 'id' ); @@ -128,9 +129,7 @@ class ImageHistoryList extends ContextSource { $row = $selected = ''; // Deletion link - if ( $local && ( MediaWikiServices::getInstance() - ->getPermissionManager() - ->userHasAnyRight( $user, 'delete', 'deletedhistory' ) ) + if ( $local && ( $pm->userHasAnyRight( $user, 'delete', 'deletedhistory' ) ) ) { $row .= ''; # Link to remove from history @@ -173,8 +172,8 @@ class ImageHistoryList extends ContextSource { $row .= ''; if ( $iscur ) { $row .= $this->msg( 'filehist-current' )->escaped(); - } elseif ( $local && $this->title->quickUserCan( 'edit', $user ) - && $this->title->quickUserCan( 'upload', $user ) + } elseif ( $local && $pm->quickUserCan( 'edit', $user, $this->title ) + && $pm->quickUserCan( 'upload', $user, $this->title ) ) { if ( $file->isDeleted( File::DELETED_FILE ) ) { $row .= $this->msg( 'filehist-revert' )->escaped(); diff --git a/includes/page/ImagePage.php b/includes/page/ImagePage.php index 4f08995212..2e43e8c53b 100644 --- a/includes/page/ImagePage.php +++ b/includes/page/ImagePage.php @@ -748,7 +748,8 @@ EOT return; } - $canUpload = $this->getTitle()->quickUserCan( 'upload', $this->getContext()->getUser() ); + $canUpload = MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'upload', $this->getContext()->getUser(), $this->getTitle() ); if ( $canUpload && UploadBase::userCanReUpload( $this->getContext()->getUser(), $this->mPage->getFile() ) diff --git a/includes/skins/Skin.php b/includes/skins/Skin.php index 212ac47157..b0d067820a 100644 --- a/includes/skins/Skin.php +++ b/includes/skins/Skin.php @@ -461,7 +461,9 @@ abstract class Skin extends ContextSource { $type = 'ns-subject'; } // T208315: add HTML class when the user can edit the page - if ( $title->quickUserCan( 'edit', $user ) ) { + if ( MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'edit', $user, $title ) + ) { $type .= ' mw-editable'; } } @@ -725,14 +727,17 @@ abstract class Skin extends ContextSource { $action = $this->getRequest()->getVal( 'action', 'view' ); $title = $this->getTitle(); $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); if ( ( !$title->exists() || $action == 'history' ) && - $title->quickUserCan( 'deletedhistory', $this->getUser() ) + $permissionManager->quickUserCan( 'deletedhistory', $this->getUser(), $title ) ) { $n = $title->isDeleted(); if ( $n ) { - if ( $this->getTitle()->quickUserCan( 'undelete', $this->getUser() ) ) { + if ( $permissionManager->quickUserCan( 'undelete', + $this->getUser(), $this->getTitle() ) + ) { $msg = 'thisisdeleted'; } else { $msg = 'viewdeleted'; diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php index aeca0162c1..3e8972c0c0 100644 --- a/includes/skins/SkinTemplate.php +++ b/includes/skins/SkinTemplate.php @@ -884,6 +884,7 @@ class SkinTemplate extends Skin { $out = $this->getOutput(); $request = $this->getRequest(); $user = $this->getUser(); + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); $content_navigation = [ 'namespaces' => [], @@ -895,7 +896,7 @@ class SkinTemplate extends Skin { // parameters $action = $request->getVal( 'action', 'view' ); - $userCanRead = $title->quickUserCan( 'read', $user ); + $userCanRead = $permissionManager->quickUserCan( 'read', $user, $title ); // Avoid PHP 7.1 warning of passing $this by reference $skinTemplate = $this; @@ -965,8 +966,9 @@ class SkinTemplate extends Skin { } // Checks if user can edit the current page if it exists or create it otherwise - if ( $title->quickUserCan( 'edit', $user ) - && ( $title->exists() || $title->quickUserCan( 'create', $user ) ) + if ( $permissionManager->quickUserCan( 'edit', $user, $title ) && + ( $title->exists() || + $permissionManager->quickUserCan( 'create', $user, $title ) ) ) { // Builds CSS class for talk page links $isTalkClass = $isTalk ? ' istalk' : ''; @@ -1031,7 +1033,7 @@ class SkinTemplate extends Skin { 'href' => $title->getLocalURL( 'action=history' ), ]; - if ( $title->quickUserCan( 'delete', $user ) ) { + if ( $permissionManager->quickUserCan( 'delete', $user, $title ) ) { $content_navigation['actions']['delete'] = [ 'class' => ( $onPage && $action == 'delete' ) ? 'selected' : false, 'text' => wfMessageFallback( "$skname-action-delete", 'delete' ) @@ -1040,7 +1042,7 @@ class SkinTemplate extends Skin { ]; } - if ( $title->quickUserCan( 'move', $user ) ) { + if ( $permissionManager->quickUserCan( 'move', $user, $title ) ) { $moveTitle = SpecialPage::getTitleFor( 'Movepage', $title->getPrefixedDBkey() ); $content_navigation['actions']['move'] = [ 'class' => $this->getTitle()->isSpecial( 'Movepage' ) ? 'selected' : false, @@ -1051,13 +1053,14 @@ class SkinTemplate extends Skin { } } else { // article doesn't exist or is deleted - if ( $title->quickUserCan( 'deletedhistory', $user ) ) { + if ( $permissionManager->quickUserCan( 'deletedhistory', $user, $title ) ) { $n = $title->isDeleted(); if ( $n ) { $undelTitle = SpecialPage::getTitleFor( 'Undelete', $title->getPrefixedDBkey() ); // If the user can't undelete but can view deleted // history show them a "View .. deleted" tab instead. - $msgKey = $title->quickUserCan( 'undelete', $user ) ? 'undelete' : 'viewdeleted'; + $msgKey = $permissionManager->quickUserCan( 'undelete', + $user, $title ) ? 'undelete' : 'viewdeleted'; $content_navigation['actions']['undelete'] = [ 'class' => $this->getTitle()->isSpecial( 'Undelete' ) ? 'selected' : false, 'text' => wfMessageFallback( "$skname-action-$msgKey", "{$msgKey}_short" ) @@ -1068,9 +1071,10 @@ class SkinTemplate extends Skin { } } - if ( $title->quickUserCan( 'protect', $user ) && $title->getRestrictionTypes() && - MediaWikiServices::getInstance()->getPermissionManager() - ->getNamespaceRestrictionLevels( $title->getNamespace(), $user ) !== [ '' ] + if ( $permissionManager->quickUserCan( 'protect', $user, $title ) && + $title->getRestrictionTypes() && + $permissionManager->getNamespaceRestrictionLevels( $title->getNamespace(), + $user ) !== [ '' ] ) { $mode = $title->isProtected() ? 'unprotect' : 'protect'; $content_navigation['actions'][$mode] = [ @@ -1082,9 +1086,8 @@ class SkinTemplate extends Skin { } // Checks if the user is logged in - if ( $this->loggedin && MediaWikiServices::getInstance() - ->getPermissionManager() - ->userHasAllRights( $user, 'viewmywatchlist', 'editmywatchlist' ) + if ( $this->loggedin && $permissionManager->userHasAllRights( $user, + 'viewmywatchlist', 'editmywatchlist' ) ) { /** * The following actions use messages which, if made particular to diff --git a/includes/specials/SpecialMovepage.php b/includes/specials/SpecialMovepage.php index da34d81af9..85f65bbe5c 100644 --- a/includes/specials/SpecialMovepage.php +++ b/includes/specials/SpecialMovepage.php @@ -197,7 +197,8 @@ class MovePageForm extends UnlistedSpecialPage { } if ( count( $err ) == 1 && isset( $err[0][0] ) && $err[0][0] == 'articleexists' - && $newTitle->quickUserCan( 'delete', $user ) + && MediaWikiServices::getInstance()->getPermissionManager() + ->quickUserCan( 'delete', $user, $newTitle ) ) { $out->wrapWikiMsg( "
\n$1\n
\n", diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index ad045e43f3..2ae4afcb2e 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -518,7 +518,8 @@ class SpecialSearch extends SpecialPage { $messageName = 'searchmenu-exists'; $linkClass = 'mw-search-exists'; } elseif ( ContentHandler::getForTitle( $title )->supportsDirectEditing() - && $title->quickUserCan( 'create', $this->getUser() ) + && MediaWikiServices::getInstance()->getPermissionManager()->quickUserCan( 'create', + $this->getUser(), $title ) ) { $messageName = 'searchmenu-new'; } diff --git a/includes/specials/pagers/ContribsPager.php b/includes/specials/pagers/ContribsPager.php index d62951cb7e..152f56b5dc 100644 --- a/includes/specials/pagers/ContribsPager.php +++ b/includes/specials/pagers/ContribsPager.php @@ -573,6 +573,7 @@ class ContribsPager extends RangeChronologicalPager { $attribs = []; $linkRenderer = $this->getLinkRenderer(); + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); $page = null; // Create a title for the revision if possible @@ -598,8 +599,9 @@ class ContribsPager extends RangeChronologicalPager { $topmarktext .= '' . $this->messages['uctop'] . ''; $classes[] = 'mw-contributions-current'; # Add rollback link - if ( !$row->page_is_new && $page->quickUserCan( 'rollback', $user ) - && $page->quickUserCan( 'edit', $user ) + if ( !$row->page_is_new && + $permissionManager->quickUserCan( 'rollback', $user, $page ) && + $permissionManager->quickUserCan( 'edit', $user, $page ) ) { $this->preventClickjacking(); $topmarktext .= ' ' . Linker::generateRollback( $rev, $this->getContext(), diff --git a/tests/phpunit/includes/Permissions/PermissionManagerTest.php b/tests/phpunit/includes/Permissions/PermissionManagerTest.php index 8398ea42c1..d8364434a1 100644 --- a/tests/phpunit/includes/Permissions/PermissionManagerTest.php +++ b/tests/phpunit/includes/Permissions/PermissionManagerTest.php @@ -448,8 +448,7 @@ class PermissionManagerTest extends MediaWikiLangTestCase { ->userCan( $action, $this->user, $this->title, true ) ); $this->assertEquals( $check[$action][3], MediaWikiServices::getInstance()->getPermissionManager() - ->userCan( $action, $this->user, $this->title, - PermissionManager::RIGOR_QUICK ) ); + ->quickUserCan( $action, $this->user, $this->title ) ); # count( User::getGroupsWithPermissions( $action ) ) < 1 } } @@ -888,7 +887,7 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $this->assertEquals( true, MediaWikiServices::getInstance()->getPermissionManager() - ->userCan( 'edit', $this->user, $this->title, PermissionManager::RIGOR_QUICK ) ); + ->quickUserCan( 'edit', $this->user, $this->title ) ); $this->title->mRestrictions = [ "edit" => [ 'bogus', "sysop", "protect", "" ], "bogus" => [ 'bogus', "sysop", "protect", "" ] ]; @@ -934,11 +933,11 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $this->assertEquals( false, MediaWikiServices::getInstance()->getPermissionManager() - ->userCan( 'bogus', $this->user, $this->title, PermissionManager::RIGOR_QUICK ) ); + ->quickUserCan( 'bogus', $this->user, $this->title ) ); $this->assertEquals( false, - MediaWikiServices::getInstance()->getPermissionManager()->userCan( - 'edit', $this->user, $this->title, PermissionManager::RIGOR_QUICK ) ); + MediaWikiServices::getInstance()->getPermissionManager()->quickUserCan( + 'edit', $this->user, $this->title ) ); $this->assertEquals( [ [ 'badaccess-group0' ], [ 'protectedpagetext', 'bogus', 'bogus' ], @@ -954,12 +953,12 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $this->overrideUserPermissions( $this->user, [ "edit", "editprotected" ] ); $this->assertEquals( false, - MediaWikiServices::getInstance()->getPermissionManager()->userCan( - 'bogus', $this->user, $this->title, PermissionManager::RIGOR_QUICK ) ); + MediaWikiServices::getInstance()->getPermissionManager()->quickUserCan( + 'bogus', $this->user, $this->title ) ); $this->assertEquals( false, - MediaWikiServices::getInstance()->getPermissionManager()->userCan( - 'edit', $this->user, $this->title, PermissionManager::RIGOR_QUICK ) ); + MediaWikiServices::getInstance()->getPermissionManager()->quickUserCan( + 'edit', $this->user, $this->title ) ); $this->assertEquals( [ [ 'badaccess-group0' ], [ 'protectedpagetext', 'bogus', 'bogus' ], @@ -1176,8 +1175,7 @@ class PermissionManagerTest extends MediaWikiLangTestCase { ->userCan( 'move-target', $this->user, $this->title ) ); // quickUserCan should ignore user blocks $this->assertEquals( true, MediaWikiServices::getInstance()->getPermissionManager() - ->userCan( 'move-target', $this->user, $this->title, - PermissionManager::RIGOR_QUICK ) ); + ->quickUserCan( 'move-target', $this->user, $this->title ) ); global $wgLocalTZoffset; $wgLocalTZoffset = -60; -- 2.20.1