Lilu has uploaded a new change for review.

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

Change subject: PermissionManager Improvements
......................................................................

PermissionManager Improvements

- tweaked 'preventPermissionLockout' so it takes the lockmode group into 
consideration and doesn't allows the removal of protected rights from all 
groups, even if lockmode is active
- tweaked 'setupLockmodePermissions' so on lockmode activation not only the 
lockmode group, but also the sysop group gets all rights explicitly
- made the different groups in the permission manager grid collapsible

Change-Id: I7dfd0b120da5df4cba0c44ba2172b280e0e3660a
---
M PermissionManager/PermissionManager.class.php
M PermissionManager/resources/BS.PermissionManager/grid/Permissions.js
2 files changed, 24 insertions(+), 8 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions 
refs/changes/80/255380/1

diff --git a/PermissionManager/PermissionManager.class.php 
b/PermissionManager/PermissionManager.class.php
index 0f2546e..a66e30a 100644
--- a/PermissionManager/PermissionManager.class.php
+++ b/PermissionManager/PermissionManager.class.php
@@ -230,18 +230,26 @@
                        foreach ( $aAvailablePermissions as $permissionName ) {
                                if ( !isset( $wgGroupPermissions[ 
self::$sPmLockModeGroup ][ $permissionName ] ) ) {
                                        $wgGroupPermissions[ 
self::$sPmLockModeGroup ][ $permissionName ] = true;
+                                       $wgGroupPermissions[ 'sysop' ][ 
$permissionName ] = true;
                                        $bSave = true;
                                }
                                if ( isset( $wgNamespacePermissionLockdown[ 
$nsKey ][ $permissionName ] ) ) {
                                        if ( !in_array( 
self::$sPmLockModeGroup, $wgNamespacePermissionLockdown[ $nsKey ][ 
$permissionName ] ) ) {
                                                $wgNamespacePermissionLockdown[ 
$nsKey ][ $permissionName ] = array_unique(
-                                                               array_merge( 
$wgNamespacePermissionLockdown[ $nsKey ][ $permissionName ], array( 
self::$sPmLockModeGroup )
-                                                               )
+                                                       array_merge( 
$wgNamespacePermissionLockdown[ $nsKey ][ $permissionName ], array( 
self::$sPmLockModeGroup )
+                                                       )
+                                               );
+                                               $bSave = true;
+                                       }
+                                       if ( !in_array( 'sysop', 
$wgNamespacePermissionLockdown[ $nsKey ][ $permissionName ] ) ) {
+                                               $wgNamespacePermissionLockdown[ 
$nsKey ][ $permissionName ] = array_unique(
+                                                       array_merge( 
$wgNamespacePermissionLockdown[ $nsKey ][ $permissionName ], array( 'sysop' )
+                                                       )
                                                );
                                                $bSave = true;
                                        }
                                } else {
-                                       $wgNamespacePermissionLockdown[ $nsKey 
][ $permissionName ] = array( self::$sPmLockModeGroup );
+                                       $wgNamespacePermissionLockdown[ $nsKey 
][ $permissionName ] = array( self::$sPmLockModeGroup, 'sysop' );
                                        $bSave = true;
                                }
                        }
@@ -493,7 +501,11 @@
                        if ( isset( $bsgPermissionConfig[ $sRight ][ 
'preventLockout' ] ) ) {
                                $bIsSet = false;
                                if ( is_array( $aGroupPermissions ) ) {
-                                       foreach ( $aGroupPermissions as 
$aDataset ) {
+                                       foreach ( $aGroupPermissions as 
$sGroupName => $aDataset ) {
+                                               // no user can be in the lock 
mode group so we don't care if it has the right or not
+                                               if($sGroupName == 
self::$sPmLockModeGroup) {
+                                                       continue;
+                                               }
                                                if ( isset( $aDataset[ $sRight 
] ) && $aDataset[ $sRight ] ) {
                                                        $bIsSet = true;
                                                        continue 2;
@@ -581,9 +593,13 @@
                                                $isReadLockdown = true;
                                        }
                                        // check if settings for any group 
changed
-                                       $aLocalDiffGroups = array_diff( 
$aGroups, $wgNamespacePermissionLockdown[ $sNsConstant ][ $sPermission ] );
-                                       foreach( $aLocalDiffGroups as 
$sDiffGroup ) {
-                                               $aDiffGroups[ $sDiffGroup ] = 
true;
+                                       
if(isset($wgNamespacePermissionLockdown[$sNsConstant])
+                                               && 
isset($wgNamespacePermissionLockdown[$sNsConstant][$sPermission])
+                                       ) {
+                                               $aLocalDiffGroups = array_diff( 
$aGroups, $wgNamespacePermissionLockdown[ $sNsConstant ][ $sPermission ] );
+                                               foreach ( $aLocalDiffGroups as 
$sDiffGroup ) {
+                                                       $aDiffGroups[ 
$sDiffGroup ] = true;
+                                               }
                                        }
                                }
                                if ( $isReadLockdown ) {
diff --git 
a/PermissionManager/resources/BS.PermissionManager/grid/Permissions.js 
b/PermissionManager/resources/BS.PermissionManager/grid/Permissions.js
index 4bd2294..b3e0bc8 100644
--- a/PermissionManager/resources/BS.PermissionManager/grid/Permissions.js
+++ b/PermissionManager/resources/BS.PermissionManager/grid/Permissions.js
@@ -26,7 +26,7 @@
                                ],
                                hideGroupedHeader: true,
                                enableGroupingMenu: false,
-                               collapsible: false
+                               collapsible: true
                        }];
 
                this.columns = 
Ext.create('BS.PermissionManager.data.Manager').getColumns();

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7dfd0b120da5df4cba0c44ba2172b280e0e3660a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Lilu <[email protected]>

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

Reply via email to