From 20291cd16612c6f84f21fd90a3af6526bf64d752 Mon Sep 17 00:00:00 2001 From: umherirrender Date: Fri, 5 Oct 2012 16:25:01 +0200 Subject: [PATCH] Pass user object to some Revision::getText/Title::userCan calls Also passed some $wgUser direct (when already there), so it is seen by someone, that the user should be passed to that method. Change-Id: Id4d5504a05ea34d80d59262ad3aef28f09c807a6 --- includes/Article.php | 2 +- includes/EditPage.php | 8 ++++---- includes/api/ApiEditPage.php | 2 +- includes/diff/DifferenceEngine.php | 6 +++--- includes/specials/SpecialSearch.php | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/includes/Article.php b/includes/Article.php index 76e566bd99..db4444eefb 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -380,7 +380,7 @@ class Article extends Page { // @todo FIXME: Horrible, horrible! This content-loading interface just plain sucks. // We should instead work with the Revision object when we need it... - $this->mContent = $this->mRevision->getText( Revision::FOR_THIS_USER ); // Loads if user is allowed + $this->mContent = $this->mRevision->getText( Revision::FOR_THIS_USER, $this->getContext()->getUser() ); // Loads if user is allowed $this->mRevIdFetched = $this->mRevision->getId(); wfRunHooks( 'ArticleAfterFetchContent', array( &$this, &$this->mContent ) ); diff --git a/includes/EditPage.php b/includes/EditPage.php index 39227198c2..cc85a7daec 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -946,7 +946,7 @@ class EditPage { $title = Title::newFromText( $preload ); # Check for existence to avoid getting MediaWiki:Noarticletext - if ( $title === null || !$title->exists() || !$title->userCan( 'read' ) ) { + if ( $title === null || !$title->exists() || !$title->userCan( 'read', $wgUser ) ) { return ''; } @@ -954,7 +954,7 @@ class EditPage { if ( $page->isRedirect() ) { $title = $page->getRedirectTarget(); # Same as before - if ( $title === null || !$title->exists() || !$title->userCan( 'read' ) ) { + if ( $title === null || !$title->exists() || !$title->userCan( 'read', $wgUser ) ) { return ''; } $page = WikiPage::factory( $title ); @@ -1215,7 +1215,7 @@ class EditPage { if ( $new ) { // Late check for create permission, just in case *PARANOIA* - if ( !$this->mTitle->userCan( 'create' ) ) { + if ( !$this->mTitle->userCan( 'create', $wgUser ) ) { $status->fatal( 'nocreatetext' ); $status->value = self::AS_NO_CREATE_PERMISSION; wfDebug( __METHOD__ . ": no create permission\n" ); @@ -1994,7 +1994,7 @@ class EditPage { if ( $revision ) { // Let sysop know that this will make private content public if saved - if ( !$revision->userCan( Revision::DELETED_TEXT ) ) { + if ( !$revision->userCan( Revision::DELETED_TEXT, $wgUser ) ) { $wgOut->wrapWikiMsg( "\n", 'rev-deleted-text-permission' ); } elseif ( $revision->isDeleted( Revision::DELETED_TEXT ) ) { $wgOut->wrapWikiMsg( "\n", 'rev-deleted-text-view' ); diff --git a/includes/api/ApiEditPage.php b/includes/api/ApiEditPage.php index 0963fe7cf2..2b9e849c6a 100644 --- a/includes/api/ApiEditPage.php +++ b/includes/api/ApiEditPage.php @@ -63,7 +63,7 @@ class ApiEditPage extends ApiBase { $titles = Title::newFromRedirectArray( Revision::newFromTitle( $oldTitle, false, Revision::READ_LATEST - )->getText( Revision::FOR_THIS_USER ) + )->getText( Revision::FOR_THIS_USER, $user ) ); // array_shift( $titles ); diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index c7156fb2f1..31fdc6dc8e 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -1082,13 +1082,13 @@ class DifferenceEngine extends ContextSource { return false; } if ( $this->mOldRev ) { - $this->mOldtext = $this->mOldRev->getText( Revision::FOR_THIS_USER ); + $this->mOldtext = $this->mOldRev->getText( Revision::FOR_THIS_USER, $this->getUser() ); if ( $this->mOldtext === false ) { return false; } } if ( $this->mNewRev ) { - $this->mNewtext = $this->mNewRev->getText( Revision::FOR_THIS_USER ); + $this->mNewtext = $this->mNewRev->getText( Revision::FOR_THIS_USER, $this->getUser() ); if ( $this->mNewtext === false ) { return false; } @@ -1110,7 +1110,7 @@ class DifferenceEngine extends ContextSource { if ( !$this->loadRevisionData() ) { return false; } - $this->mNewtext = $this->mNewRev->getText( Revision::FOR_THIS_USER ); + $this->mNewtext = $this->mNewRev->getText( Revision::FOR_THIS_USER, $this->getUser() ); return true; } } diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index d2add62d19..3ae0b838c7 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -423,7 +423,7 @@ class SpecialSearch extends SpecialPage { if( $t->isKnown() ) { $messageName = 'searchmenu-exists'; - } elseif( $t->userCan( 'create' ) ) { + } elseif( $t->userCan( 'create', $this->getUser() ) ) { $messageName = 'searchmenu-new'; } else { $messageName = 'searchmenu-new-nocreate'; @@ -559,7 +559,7 @@ class SpecialSearch extends SpecialPage { //If page content is not readable, just return the title. //This is not quite safe, but better than showing excerpts from non-readable pages //Note that hiding the entry entirely would screw up paging. - if( !$t->userCan( 'read' ) ) { + if( !$t->userCan( 'read', $this->getUser() ) ) { wfProfileOut( __METHOD__ ); return "
  • {$link}
  • \n"; } -- 2.20.1