Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/87669


Change subject: Check permissions in MergeItems..
......................................................................

Check permissions in MergeItems..

Change-Id: I6ed988023fedf872a9620fbed1bee342bd80155c
---
M repo/Wikibase.php
M repo/config/Wikibase.example.php
M repo/includes/api/MergeItems.php
3 files changed, 11 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/69/87669/1

diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index f1932dc..5667e41 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -85,6 +85,7 @@
        $wgGroupPermissions['*']['item-override']               = true;
        $wgGroupPermissions['*']['item-create']                 = true;
        $wgGroupPermissions['*']['item-remove']                 = true;
+       $wgGroupPermissions['*']['item-merge']                  = true;
        $wgGroupPermissions['*']['property-override']   = true;
        $wgGroupPermissions['*']['property-create']             = true;
        $wgGroupPermissions['*']['property-remove']             = true;
diff --git a/repo/config/Wikibase.example.php b/repo/config/Wikibase.example.php
index dae4b53..7d84391 100644
--- a/repo/config/Wikibase.example.php
+++ b/repo/config/Wikibase.example.php
@@ -114,6 +114,7 @@
 $wgGroupPermissions['*']['item-override']      = false;
 $wgGroupPermissions['*']['item-create']                = false;
 $wgGroupPermissions['*']['item-remove']                = false;
+$wgGroupPermissions['*']['item-merge']         = false;
 $wgGroupPermissions['*']['property-override']  = false;
 $wgGroupPermissions['*']['property-create']            = false;
 $wgGroupPermissions['*']['property-remove']            = false;
@@ -130,6 +131,7 @@
 $wgGroupPermissions['user']['item-override']   = true;
 $wgGroupPermissions['user']['item-create']             = true;
 $wgGroupPermissions['user']['item-remove']             = true;
+$wgGroupPermissions['user']['item-merge']              = true;
 $wgGroupPermissions['user']['property-override']       = true;
 $wgGroupPermissions['user']['property-create']         = true;
 $wgGroupPermissions['user']['property-remove']         = true;
diff --git a/repo/includes/api/MergeItems.php b/repo/includes/api/MergeItems.php
index 1756d24..a3d2325 100644
--- a/repo/includes/api/MergeItems.php
+++ b/repo/includes/api/MergeItems.php
@@ -45,7 +45,7 @@
         * @see \ApiBase::execute()
         */
        public function execute() {
-               $this->getUser();
+               $user = $this->getUser();
                $params = $this->extractRequestParams();
                $this->validateParams( $params );
 
@@ -53,6 +53,13 @@
                $toEntityContent = $this->getEntityContentFromIdString( 
$params['toid'] );
                $this->validateEntityContents( $fromEntityContent, 
$toEntityContent );
 
+               $status = Status::newGood();
+               $status->merge( $this->checkPermissions( $fromEntityContent, 
$user, $params ) );
+               $status->merge( $this->checkPermissions( $toEntityContent, 
$user, $params ) );
+               if( !$status->isGood() ){
+                       $this->dieUsage( $status->getMessage(), 'failed-save');
+               }
+
                /**
                 * @var ItemContent $fromEntityContent
                 * @var ItemContent $toEntityContent

-- 
To view, visit https://gerrit.wikimedia.org/r/87669
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ed988023fedf872a9620fbed1bee342bd80155c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to