jenkins-bot has submitted this change and it was merged.

Change subject: PermissionManager: move to special page and register own 
permission improve message key usage as suggested in comments fix 
getRequiredTaskPermissions as needed by base class
......................................................................


PermissionManager: move to special page and register own permission
improve message key usage as suggested in comments
fix getRequiredTaskPermissions as needed by base class

Change-Id: I7317e138847398ca071c39bd3fd8e6e4d048c79a
---
M PermissionManager/PermissionManager.class.php
M PermissionManager/PermissionManager.setup.php
M PermissionManager/i18n/en.json
M PermissionManager/i18n/qqq.json
M PermissionManager/includes/api/ApiPermissionManager.php
A PermissionManager/includes/specials/SpecialPermissionManager.alias.php
A PermissionManager/includes/specials/SpecialPermissionManager.class.php
7 files changed, 121 insertions(+), 7 deletions(-)

Approvals:
  Robert Vogel: Looks good to me, approved
  Raimond Spekking: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/PermissionManager/PermissionManager.class.php 
b/PermissionManager/PermissionManager.class.php
index d7a633c..6e2e05d 100644
--- a/PermissionManager/PermissionManager.class.php
+++ b/PermissionManager/PermissionManager.class.php
@@ -134,6 +134,8 @@
 
                $this->setHook( 'BSGroupManagerGroupNameChanged' );
                $this->setHook( 'BSGroupManagerGroupDeleted' );
+
+               $this->mCore->registerPermission( 
'permissionmanager-viewspecialpage', array( 'sysop' ), array( 'type' => 
'global' ) );
        }
 
        /**
diff --git a/PermissionManager/PermissionManager.setup.php 
b/PermissionManager/PermissionManager.setup.php
index df45c31..938cdc1 100644
--- a/PermissionManager/PermissionManager.setup.php
+++ b/PermissionManager/PermissionManager.setup.php
@@ -48,6 +48,11 @@
 $wgAutoloadClasses['PermissionManager'] = __DIR__ . 
'/PermissionManager.class.php';
 $wgAutoloadClasses['PermissionTemplates'] = __DIR__ . 
'/includes/PermissionTemplates.class.php';
 $wgAutoloadClasses['PermissionValidator'] = __DIR__ . 
'/includes/PermissionValidator.php';
+$wgAutoloadClasses['SpecialPermissionManager'] = __DIR__ . 
'/includes/specials/SpecialPermissionManager.class.php';
+$wgExtensionMessagesFiles['PermissionManagerAlias'] = __DIR__ . 
'/includes/specials/SpecialPermissionManager.alias.php';
+
+//register specialpage for permissionmanager
+$wgSpecialPages['PermissionManager'] = 'SpecialPermissionManager';
 
 // Map class name to filename for autoloading
 $wgAutoloadClasses['ApiPermissionManager'] = __DIR__ . 
'/includes/api/ApiPermissionManager.php';
diff --git a/PermissionManager/i18n/en.json b/PermissionManager/i18n/en.json
index 25f80a2..833369f 100644
--- a/PermissionManager/i18n/en.json
+++ b/PermissionManager/i18n/en.json
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Stephan Muggli <mug...@hallowelt.biz>"
+                       "Stephan Muggli <mug...@hallowelt.biz>",
+                       "Leonid Verhovskij <verhovs...@hallowelt.com>"
                ]
        },
        "bs-permissionmanager-desc": "Administration interface for editing user 
rights",
@@ -46,5 +47,7 @@
        "log-description-bs-permission-manager": "This is a log of changes in 
the group permissions.",
        "log-show-hide-bs-permission-manager": "$1 permission manager log",
        "logentry-bs-permission-manager-modify": "$1 {{GENDER:$2|has}} changed 
the permissions of the group $4",
-       "apihelp-bs-permissionmanager-tasks-description": "Provides tasks for 
the PermissionManager"
+       "apihelp-bs-permissionmanager-tasks-description": "Provides tasks for 
the PermissionManager",
+       "action-permissionmanager-viewspecialpage":"view the special page 
\"{{int:bs-permissionmanager-label}}\"",
+       "permissionmanager":"Permission manager"
 }
diff --git a/PermissionManager/i18n/qqq.json b/PermissionManager/i18n/qqq.json
index 68f96b5..4d2bae5 100644
--- a/PermissionManager/i18n/qqq.json
+++ b/PermissionManager/i18n/qqq.json
@@ -3,7 +3,8 @@
                "authors": [
                        "Stephan Muggli <mug...@hallowelt.biz>",
                        "Liuxinyu970226",
-                       "Shirayuki"
+                       "Shirayuki",
+                       "Leonid Verhovskij <verhovs...@hallowelt.com>"
                ]
        },
        "bs-permissionmanager-desc": "Used in 
[{{canonicalurl:Special:WikiAdmin|mode=ExtensionInfo}} 
Special:WikiAdmin?mode=ExtensionInfo], description of permission manager 
extension",
@@ -48,5 +49,7 @@
        "log-description-bs-permission-manager": "Used in [[Special:Log]], 
description of the log type",
        "log-show-hide-bs-permission-manager": "Used in [[Special:Log]]. 
Parameters:\n* $1 - link text; one of {{msg-mw|Show}} or 
{{msg-mw|Hide}}\n{{Related|Log-show-hide}}",
        "logentry-bs-permission-manager-modify": "Log message about changes in 
the permissions of one specific group.\nParameters:\n* $4 - name of the group",
-       "apihelp-bs-permissionmanager-tasks-description": "Describes an API 
endpoint that provides tasks for the PermissionManager"
+       "apihelp-bs-permissionmanager-tasks-description": "Describes an API 
endpoint that provides tasks for the PermissionManager",
+       "action-permissionmanager-viewspecialpage": "placeholder to describe 
that view of special page \"{{int:bs-permissionmanager-label}}\" is restricted 
for the current user",
+       "permissionmanager":"Anchor text for permission 
manager\n{{Identical|Permission manager}}"
 }
diff --git a/PermissionManager/includes/api/ApiPermissionManager.php 
b/PermissionManager/includes/api/ApiPermissionManager.php
index 40251e0..218ee96 100644
--- a/PermissionManager/includes/api/ApiPermissionManager.php
+++ b/PermissionManager/includes/api/ApiPermissionManager.php
@@ -63,9 +63,10 @@
 
        protected function getRequiredTaskPermissions() {
                return array(
-                       'add' => array( 'wikiadmin' ),
-                       'edit' => array( 'wikiadmin' ),
-                       'remove' => array( 'wikiadmin' )
+                       'deleteTemplate' => array( 'wikiadmin' ),
+                       'permissions' => array( 'wikiadmin' ),
+                       'savePermissions' => array( 'wikiadmin' ),
+                       'setTemplateData' => array( 'wikiadmin' ),
                );
        }
 
diff --git 
a/PermissionManager/includes/specials/SpecialPermissionManager.alias.php 
b/PermissionManager/includes/specials/SpecialPermissionManager.alias.php
new file mode 100644
index 0000000..1a76308
--- /dev/null
+++ b/PermissionManager/includes/specials/SpecialPermissionManager.alias.php
@@ -0,0 +1,12 @@
+<?php
+$specialPageAliases = array();
+
+/** English */
+$specialPageAliases['en'] = array(
+       'PermissionManager' => array( 'PermissionManager', 'Permission Manager' 
),
+);
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = array(
+       'PermissionManager' => array( 'PermissionManager', 'Permission 
Manager', 'Rechteverwaltung', 'Rechtemanager' ),
+);
diff --git 
a/PermissionManager/includes/specials/SpecialPermissionManager.class.php 
b/PermissionManager/includes/specials/SpecialPermissionManager.class.php
new file mode 100644
index 0000000..0e01320
--- /dev/null
+++ b/PermissionManager/includes/specials/SpecialPermissionManager.class.php
@@ -0,0 +1,88 @@
+<?php
+
+class SpecialPermissionManager extends BsSpecialPage {
+
+       public function __construct() {
+               parent::__construct( 'PermissionManager', 
'permissionmanager-viewspecialpage' );
+
+       }
+
+       /**
+        *
+        * @global OutputPage $this->getOutput()
+        * @param type $sParameter
+        * @return type
+        */
+       public function execute( $sParameter ) {
+               parent::execute( $sParameter );
+               global $wgImplicitGroups, $wgGroupPermissions, 
$wgNamespacePermissionLockdown;
+
+               $this->getOutput()->addModules( 
'ext.bluespice.permissionManager' );
+
+               $aGroups = array(
+                       'text' => '*',
+                       'builtin' => true,
+                       'implicit' => true,
+                       'expanded' => true,
+                       'children' => array(
+                               array(
+                                       'text' => 'user',
+                                       'builtin' => true,
+                                       'implicit' => true,
+                                       'expanded' => true,
+                                       'children' => array()
+                               )
+                       )
+               );
+
+               $aExplicitGroups = BsGroupHelper::getAvailableGroups(
+                       array( 'blacklist' => $wgImplicitGroups )
+               );
+
+               sort( $aExplicitGroups );
+
+               $aExplicitGroupNodes = array();
+               foreach ( $aExplicitGroups as $sExplicitGroup ) {
+                       $aExplicitGroupNode = array(
+                               'text' => $sExplicitGroup,
+                               'leaf' => true
+                       );
+
+                       if ( in_array( $sExplicitGroup, 
PermissionManager::$aBuiltInGroups ) ) {
+                               $aExplicitGroupNode[ 'builtin' ] = true;
+                       }
+
+                       $aExplicitGroupNodes[] = $aExplicitGroupNode;
+               }
+
+               $aGroups[ 'children' ][ 0 ][ 'children' ] = 
$aExplicitGroupNodes;
+
+               $aJsVars = array(
+                       'bsPermissionManagerGroupsTree' => $aGroups,
+                       'bsPermissionManagerNamespaces' => 
PermissionManager::buildNamespaceMetadata(),
+                       'bsPermissionManagerRights' => 
PermissionManager::buildRightsMetadata(),
+                       'bsPermissionManagerGroupPermissions' => 
$wgGroupPermissions,
+                       'bsPermissionManagerPermissionLockdown' => 
$wgNamespacePermissionLockdown,
+                       'bsPermissionManagerPermissionTemplates' => 
PermissionManager::getTemplateRules()
+               );
+
+               wfRunHooks( 'BsPermissionManager::beforeLoadPermissions', 
array( &$aJsVars ) );
+
+               //Make sure a new group without any explicit permissions is 
converted into an object!
+               //Without any key => value it would be converted into an empty 
array.
+               foreach ( $aJsVars[ 'bsPermissionManagerGroupPermissions' ] as 
$sGroup => $aPermissions ) {
+                       if ( !empty( $aPermissions ) )
+                               continue;
+                       $aJsVars[ 'bsPermissionManagerGroupPermissions' ][ 
$sGroup ] = ( object ) array();
+               }
+
+               $this->getOutput()->addJsConfigVars( $aJsVars );
+
+               $this->getOutput()->addHTML( '<div id="panelPermissionManager" 
style="height: 500px"></div>' );
+       }
+
+       protected function getGroupName() {
+               return 'bluespice';
+       }
+
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7317e138847398ca071c39bd3fd8e6e4d048c79a
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Ljonka <l.verhovs...@gmail.com>
Gerrit-Reviewer: Dvogel hallowelt <daniel.vo...@hallowelt.com>
Gerrit-Reviewer: Mglaser <gla...@hallowelt.biz>
Gerrit-Reviewer: Pwirth <wi...@hallowelt.biz>
Gerrit-Reviewer: Raimond Spekking <raimond.spekk...@gmail.com>
Gerrit-Reviewer: Robert Vogel <vo...@hallowelt.biz>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to