John Erling Blad has uploaded a new change for review.

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


Change subject: (Bug 41882) Add restrictions for special pages
......................................................................

(Bug 41882) Add restrictions for special pages

This adds restrictions for special pages that creates items and properties,
and for special pages that changes labels, descriptions and aliases.
It is also a minor change to an API-module for aliases to use only one
permission as it is only possible to use one restriction in the special
page.

Some localization needs to be done, and there should be tests for the
restrictions. Only the special page for create item is tested.

Change-Id: I137187981ff4cc12864717583d0af6129aebfbc3
---
M repo/Wikibase.php
M repo/config/Wikibase.example.php
M repo/includes/api/ApiSetAliases.php
M repo/includes/specials/SpecialCreateItem.php
M repo/includes/specials/SpecialNewProperty.php
M repo/includes/specials/SpecialSetAliases.php
M repo/includes/specials/SpecialSetDescription.php
M repo/includes/specials/SpecialSetLabel.php
8 files changed, 37 insertions(+), 12 deletions(-)


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

diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index bd04822..17579d3 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -72,8 +72,7 @@
 $wgGroupPermissions['*']['item-override']      = true;
 $wgGroupPermissions['*']['item-create']                = true;
 $wgGroupPermissions['*']['item-remove']                = true;
-$wgGroupPermissions['*']['alias-add']          = true;
-$wgGroupPermissions['*']['alias-set']          = true;
+$wgGroupPermissions['*']['alias-update']       = true;
 $wgGroupPermissions['*']['alias-remove']       = true;
 $wgGroupPermissions['*']['sitelink-remove']    = true;
 $wgGroupPermissions['*']['sitelink-update']    = true;
diff --git a/repo/config/Wikibase.example.php b/repo/config/Wikibase.example.php
index c08ebf2..26eb6df 100644
--- a/repo/config/Wikibase.example.php
+++ b/repo/config/Wikibase.example.php
@@ -106,4 +106,32 @@
 $wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_QUERY] = 
WB_NS_QUERY; // use custom namespace
 
 // No need to mess with $wgNamespacesToBeSearchedDefault, the main namespace 
will be searched per default.
+
+// Alternate setup for rights so editing of entities by default is off
+$wgGroupPermissions['*']['item-override']      = false;
+$wgGroupPermissions['*']['item-create']                = false;
+$wgGroupPermissions['*']['item-remove']                = false;
+$wgGroupPermissions['*']['alias-update']       = false;
+$wgGroupPermissions['*']['alias-remove']       = false;
+$wgGroupPermissions['*']['sitelink-remove']    = false;
+$wgGroupPermissions['*']['sitelink-update']    = false;
+$wgGroupPermissions['*']['linktitles-update']  = false;
+$wgGroupPermissions['*']['label-remove']       = false;
+$wgGroupPermissions['*']['label-update']       = false;
+$wgGroupPermissions['*']['description-remove'] = false;
+$wgGroupPermissions['*']['description-update'] = false;
+
+$wgGroupPermissions['user']['item-override']   = true;
+$wgGroupPermissions['user']['item-create']             = true;
+$wgGroupPermissions['user']['item-remove']             = true;
+$wgGroupPermissions['user']['alias-update']    = true;
+$wgGroupPermissions['user']['alias-remove']    = true;
+$wgGroupPermissions['user']['sitelink-remove'] = true;
+$wgGroupPermissions['user']['sitelink-update'] = true;
+$wgGroupPermissions['user']['linktitles-update']       = true;
+$wgGroupPermissions['user']['label-remove']    = true;
+$wgGroupPermissions['user']['label-update']    = true;
+$wgGroupPermissions['user']['description-remove']      = true;
+$wgGroupPermissions['user']['description-update']      = true;
+
 */
diff --git a/repo/includes/api/ApiSetAliases.php 
b/repo/includes/api/ApiSetAliases.php
index 92a0161..53ac3c1 100644
--- a/repo/includes/api/ApiSetAliases.php
+++ b/repo/includes/api/ApiSetAliases.php
@@ -25,11 +25,9 @@
        protected function getRequiredPermissions( Entity $entity, array 
$params ) {
                $permissions = parent::getRequiredPermissions( $entity, $params 
);
 
-               if ( isset( $params['add'] ) ) {
-                       $permissions[] = 'alias-add';
-               }
-               if ( isset( $params['set'] ) ) {
-                       $permissions[] = 'alias-set';
+               if ( isset( $params['add'] ) || isset( $params['set'] ) ) {
+                       // add and set has a common permission due to the 
special page SetAliases
+                       $permissions[] = 'alias-update';
                }
                if ( isset( $params['remove'] ) ) {
                        $permissions[] = 'alias-remove';
diff --git a/repo/includes/specials/SpecialCreateItem.php 
b/repo/includes/specials/SpecialCreateItem.php
index 2c0f424..73bbff2 100644
--- a/repo/includes/specials/SpecialCreateItem.php
+++ b/repo/includes/specials/SpecialCreateItem.php
@@ -44,7 +44,7 @@
         * @since 0.1
         */
        public function __construct() {
-               parent::__construct( 'CreateItem' );
+               parent::__construct( 'CreateItem', 'item-create' );
        }
 
        /**
diff --git a/repo/includes/specials/SpecialNewProperty.php 
b/repo/includes/specials/SpecialNewProperty.php
index 515b585..9c1cb9b 100644
--- a/repo/includes/specials/SpecialNewProperty.php
+++ b/repo/includes/specials/SpecialNewProperty.php
@@ -44,7 +44,7 @@
         * @since 0.2
         */
        public function __construct() {
-               parent::__construct( 'NewProperty' );
+               parent::__construct( 'NewProperty', 'create-property' );
        }
 
        /**
diff --git a/repo/includes/specials/SpecialSetAliases.php 
b/repo/includes/specials/SpecialSetAliases.php
index 3cb1da3..4d20b64 100644
--- a/repo/includes/specials/SpecialSetAliases.php
+++ b/repo/includes/specials/SpecialSetAliases.php
@@ -34,7 +34,7 @@
         * @since 0.4
         */
        public function __construct() {
-               parent::__construct( 'SetAliases' );
+               parent::__construct( 'SetAliases', 'alias-update' );
        }
 
        /**
diff --git a/repo/includes/specials/SpecialSetDescription.php 
b/repo/includes/specials/SpecialSetDescription.php
index 0ab9d8d..cb99ee8 100644
--- a/repo/includes/specials/SpecialSetDescription.php
+++ b/repo/includes/specials/SpecialSetDescription.php
@@ -34,7 +34,7 @@
         * @since 0.4
         */
        public function __construct() {
-               parent::__construct( 'SetDescription' );
+               parent::__construct( 'SetDescription', 'description-update' );
        }
 
        /**
diff --git a/repo/includes/specials/SpecialSetLabel.php 
b/repo/includes/specials/SpecialSetLabel.php
index 683996c..8074065 100644
--- a/repo/includes/specials/SpecialSetLabel.php
+++ b/repo/includes/specials/SpecialSetLabel.php
@@ -34,7 +34,7 @@
         * @since 0.4
         */
        public function __construct() {
-               parent::__construct( 'SetLabel' );
+               parent::__construct( 'SetLabel', 'label-update' );
        }
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I137187981ff4cc12864717583d0af6129aebfbc3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: John Erling Blad <[email protected]>

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

Reply via email to