Aude has uploaded a new change for review. https://gerrit.wikimedia.org/r/168833
Change subject: Use Title::quickUserCan in ViewEntityAction ...................................................................... Use Title::quickUserCan in ViewEntityAction this does exactly the same thing as what is done in EntityPermissionChecker, but with the benefit that no Entity is required! :) We always and already have the Title in the action, so let's use that and quickUserCan which is the way this is done for non-Entity pages. Change-Id: I8c3adbd70aedf3392d07883a83cc361b28f25ae3 --- M repo/includes/actions/ViewEntityAction.php M repo/includes/content/EntityContentFactory.php M repo/tests/phpunit/includes/content/EntityContentFactoryTest.php 3 files changed, 0 insertions(+), 73 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/33/168833/4 diff --git a/repo/includes/actions/ViewEntityAction.php b/repo/includes/actions/ViewEntityAction.php index a4900f6..febfd04 100644 --- a/repo/includes/actions/ViewEntityAction.php +++ b/repo/includes/actions/ViewEntityAction.php @@ -9,7 +9,6 @@ use SpecialPage; use ViewAction; use Wikibase\Repo\Content\EntityHandler; -use Wikibase\Repo\Store\EntityPermissionChecker; use Wikibase\Repo\WikibaseRepo; /** @@ -27,11 +26,6 @@ * @var LanguageFallbackChain */ protected $languageFallbackChain; - - /** - * @var EntityPermissionChecker - */ - protected $permissionChecker; /** * Get the language fallback chain. @@ -59,29 +53,6 @@ */ public function setLanguageFallbackChain( LanguageFallbackChain $chain ) { $this->languageFallbackChain = $chain; - } - - /** - * Get permission checker. - * Uses the default WikibaseRepo instance to get the service if it was not previously set. - * - * @return EntityPermissionChecker - */ - public function getPermissionChecker() { - if ( $this->permissionChecker === null ) { - $this->permissionChecker = WikibaseRepo::getDefaultInstance()->getEntityPermissionChecker(); - } - - return $this->permissionChecker; - } - - /** - * Set permission checker. - * - * @param EntityPermissionChecker $permissionChecker - */ - public function setPermissionChecker( EntityPermissionChecker $permissionChecker ) { - $this->permissionChecker = $permissionChecker; } /** @@ -161,24 +132,7 @@ // NOTE: page-wide property, independent of user permissions $outputPage->addJsConfigVars( 'wbIsEditView', $editable ); - if ( $editable && !$content->isRedirect() ) { - $permissionChecker = $this->getPermissionChecker(); - $permissionStatus = $permissionChecker->getPermissionForTitle( - $this->getArticle()->getTitle(), - $content, - $this->getUser(), - 'edit' - ); - - $editable = $permissionStatus->isOK(); - } - $parserOptions = $this->getArticle()->getPage()->makeParserOptions( $this->getContext()->getUser() ); - - if ( !$editable ) { - // disable editing features ("sections" is a misnomer, it applies to the wikitext equivalent) - $parserOptions->setEditSection( $editable ); - } $this->getArticle()->setParserOptions( $parserOptions ); $this->getArticle()->view(); diff --git a/repo/includes/content/EntityContentFactory.php b/repo/includes/content/EntityContentFactory.php index ff03275..a27ec76 100644 --- a/repo/includes/content/EntityContentFactory.php +++ b/repo/includes/content/EntityContentFactory.php @@ -323,22 +323,4 @@ return $status; } - /** - * @param Title $title - * @param User $user - * @param string $permission - * - * @return Status - */ - public function getPermissionForTitle( Title $title, EntityContent $content, User $user, $permission ) { - $entityContentTitle = $this->getTitleForId( $content->getEntity()->getId() ); - - if ( $entityContentTitle->getFullText() !== $title->getFullText() ) { - throw new MWException( '$title does not match content' ); - } - - $errors = $title->getUserPermissionsErrors( $permission, $user, 'quick' ); - return $this->getStatusForPermissionErrors( $errors ); - } - } diff --git a/repo/tests/phpunit/includes/content/EntityContentFactoryTest.php b/repo/tests/phpunit/includes/content/EntityContentFactoryTest.php index f922d92..460cb3f 100644 --- a/repo/tests/phpunit/includes/content/EntityContentFactoryTest.php +++ b/repo/tests/phpunit/includes/content/EntityContentFactoryTest.php @@ -151,7 +151,6 @@ 'getPermissionStatusForEntity' => true, 'getPermissionStatusForEntityType' => true, 'getPermissionStatusForEntityId' => true, - 'getPermissionForTitle' => true, ), ), 'edit not allowed' => array( @@ -162,7 +161,6 @@ 'getPermissionStatusForEntity' => false, 'getPermissionStatusForEntityType' => false, 'getPermissionStatusForEntityId' => false, - 'getPermissionForTitle' => false, ), ), 'delete not allowed' => array( @@ -217,13 +215,6 @@ if ( isset( $expectations['getPermissionStatusForEntityId'] ) ) { $status = $factory->getPermissionStatusForEntityId( $wgUser, $action, $entity->getId() ); $this->assertEquals( $expectations['getPermissionStatusForEntityId'], $status->isOK() ); - } - - if ( isset( $expectations['getPermissionForTitle'] ) ) { - $title = $factory->getTitleForId( $entity->getId() ); - $content = new \Wikibase\ItemContent( $entity ); - $status = $factory->getPermissionForTitle( $title, $content, $wgUser, $action ); - $this->assertEquals( $expectations['getPermissionForTitle'], $status->isOK() ); } } -- To view, visit https://gerrit.wikimedia.org/r/168833 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8c3adbd70aedf3392d07883a83cc361b28f25ae3 Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Aude <aude.w...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits