Jeroen De Dauw has submitted this change and it was merged.
Change subject: Use Title::quickUserCan in EntityPermissionChecker
......................................................................
Use Title::quickUserCan in EntityPermissionChecker
Change-Id: If3b94a329ed51c2881f383356d5f7d58bfa7da32
---
M repo/includes/actions/ViewEntityAction.php
M repo/includes/content/EntityContentFactory.php
M repo/tests/phpunit/includes/content/EntityContentFactoryTest.php
3 files changed, 4 insertions(+), 65 deletions(-)
Approvals:
Jeroen De Dauw: Looks good to me, approved
diff --git a/repo/includes/actions/ViewEntityAction.php
b/repo/includes/actions/ViewEntityAction.php
index d65e40c..5dccc08 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,16 +132,13 @@
// NOTE: page-wide property, independent of user permissions
$outputPage->addJsConfigVars( 'wbIsEditView', $editable );
+ $user = $this->getContext()->getUser();
+
if ( $editable && !$content->isRedirect() ) {
- $permissionChecker = $this->getPermissionChecker();
- $editable =
$permissionChecker->getEditPermissionForTitle(
- $this->getArticle()->getTitle(),
- $content,
- $this->getUser()
- );
+ $editable =
$this->getArticle()->getTitle()->quickUserCan( 'edit', $user );
}
- $parserOptions =
$this->getArticle()->getPage()->makeParserOptions(
$this->getContext()->getUser() );
+ $parserOptions =
$this->getArticle()->getPage()->makeParserOptions( $user );
if ( !$editable ) {
// disable editing features ("sections" is a misnomer,
it applies to the wikitext equivalent)
diff --git a/repo/includes/content/EntityContentFactory.php
b/repo/includes/content/EntityContentFactory.php
index aefe580..1bc4454 100644
--- a/repo/includes/content/EntityContentFactory.php
+++ b/repo/includes/content/EntityContentFactory.php
@@ -311,24 +311,4 @@
return $status;
}
- /**
- * @param Title $title
- * @param EntityContent $content
- * @param User $user
- *
- * @return boolean
- */
- public function getEditPermissionForTitle( Title $title, EntityContent
$content, User $user ) {
- $entityContentTitle = $this->getTitleForId(
$content->getEntity()->getId() );
-
- if ( $entityContentTitle->getFullText() !==
$title->getFullText() ) {
- throw new MWException( '$title does not match content'
);
- }
-
- $errors = $title->getUserPermissionsErrors( 'edit', $user,
'quick' );
- $permissionStatus = $this->getStatusForPermissionErrors(
$errors );
-
- return $permissionStatus->isOK();
- }
-
}
diff --git a/repo/tests/phpunit/includes/content/EntityContentFactoryTest.php
b/repo/tests/phpunit/includes/content/EntityContentFactoryTest.php
index 40f4c2b..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,
- 'getEditPermissionForTitle' => true,
),
),
'edit not allowed' => array(
@@ -162,7 +161,6 @@
'getPermissionStatusForEntity' => false,
'getPermissionStatusForEntityType' =>
false,
'getPermissionStatusForEntityId' =>
false,
- 'getEditPermissionForTitle' => 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 );
- $hasPermission = $factory->getPermissionForTitle(
$title, $content, $wgUser, $action );
- $this->assertEquals(
$expectations['getPermissionForTitle'], $hasPermission );
}
}
--
To view, visit https://gerrit.wikimedia.org/r/170694
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If3b94a329ed51c2881f383356d5f7d58bfa7da32
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits