From: jenkins-bot Date: Mon, 15 Sep 2014 03:00:28 +0000 (+0000) Subject: Merge "Don't list nonexistent groups as addable or removable" X-Git-Tag: 1.31.0-rc.0~14021 X-Git-Url: http://git.cyclocoop.org/?a=commitdiff_plain;h=085ca26d696d63ecd33072c9b1a9efa0a89f706d;hp=-c;p=lhc%2Fweb%2Fwiklou.git Merge "Don't list nonexistent groups as addable or removable" --- 085ca26d696d63ecd33072c9b1a9efa0a89f706d diff --combined includes/specials/SpecialListgrouprights.php index 822e4d3845,88ddb401e3..5bae28f080 --- a/includes/specials/SpecialListgrouprights.php +++ b/includes/specials/SpecialListgrouprights.php @@@ -38,6 -38,10 +38,6 @@@ class SpecialListGroupRights extends Sp * @param string|null $par */ public function execute( $par ) { - global $wgImplicitGroups; - global $wgGroupPermissions, $wgRevokePermissions, $wgAddGroups, $wgRemoveGroups; - global $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf; - $this->setHeaders(); $this->outputHeader(); @@@ -54,26 -58,19 +54,26 @@@ '' ); + $config = $this->getConfig(); + $groupPermissions = $config->get( 'GroupPermissions' ); + $revokePermissions = $config->get( 'RevokePermissions' ); + $addGroups = $config->get( 'AddGroups' ); + $removeGroups = $config->get( 'RemoveGroups' ); + $groupsAddToSelf = $config->get( 'GroupsAddToSelf' ); + $groupsRemoveFromSelf = $config->get( 'GroupsRemoveFromSelf' ); $allGroups = array_unique( array_merge( - array_keys( $wgGroupPermissions ), - array_keys( $wgRevokePermissions ), - array_keys( $wgAddGroups ), - array_keys( $wgRemoveGroups ), - array_keys( $wgGroupsAddToSelf ), - array_keys( $wgGroupsRemoveFromSelf ) + array_keys( $groupPermissions ), + array_keys( $revokePermissions ), + array_keys( $addGroups ), + array_keys( $removeGroups ), + array_keys( $groupsAddToSelf ), + array_keys( $groupsRemoveFromSelf ) ) ); asort( $allGroups ); foreach ( $allGroups as $group ) { - $permissions = isset( $wgGroupPermissions[$group] ) - ? $wgGroupPermissions[$group] + $permissions = isset( $groupPermissions[$group] ) + ? $groupPermissions[$group] : array(); $groupname = ( $group == '*' ) // Replace * with a more descriptive groupname ? 'all' @@@ -103,7 -100,7 +103,7 @@@ SpecialPage::getTitleFor( 'Listusers' ), $this->msg( 'listgrouprights-members' )->escaped() ); - } elseif ( !in_array( $group, $wgImplicitGroups ) ) { + } elseif ( !in_array( $group, $config->get( 'ImplicitGroups' ) ) ) { $grouplink = '
' . Linker::linkKnown( SpecialPage::getTitleFor( 'Listusers' ), $this->msg( 'listgrouprights-members' )->escaped(), @@@ -115,12 -112,12 +115,12 @@@ $grouplink = ''; } - $revoke = isset( $wgRevokePermissions[$group] ) ? $wgRevokePermissions[$group] : array(); - $addgroups = isset( $wgAddGroups[$group] ) ? $wgAddGroups[$group] : array(); - $removegroups = isset( $wgRemoveGroups[$group] ) ? $wgRemoveGroups[$group] : array(); - $addgroupsSelf = isset( $wgGroupsAddToSelf[$group] ) ? $wgGroupsAddToSelf[$group] : array(); - $removegroupsSelf = isset( $wgGroupsRemoveFromSelf[$group] ) - ? $wgGroupsRemoveFromSelf[$group] + $revoke = isset( $revokePermissions[$group] ) ? $revokePermissions[$group] : array(); + $addgroups = isset( $addGroups[$group] ) ? $addGroups[$group] : array(); + $removegroups = isset( $removeGroups[$group] ) ? $removeGroups[$group] : array(); + $addgroupsSelf = isset( $groupsAddToSelf[$group] ) ? $groupsAddToSelf[$group] : array(); + $removegroupsSelf = isset( $groupsRemoveFromSelf[$group] ) + ? $groupsRemoveFromSelf[$group] : array(); $id = $group == '*' ? false : Sanitizer::escapeId( $group ); @@@ -138,11 -135,10 +138,11 @@@ } private function outputNamespaceProtectionInfo() { - global $wgNamespaceProtection, $wgParser, $wgContLang; + global $wgParser, $wgContLang; $out = $this->getOutput(); + $namespaceProtection = $this->getConfig()->get( 'NamespaceProtection' ); - if ( count( $wgNamespaceProtection ) == 0 ) { + if ( count( $namespaceProtection ) == 0 ) { return; } @@@ -165,8 -161,8 +165,8 @@@ ) ); - ksort( $wgNamespaceProtection ); - foreach ( $wgNamespaceProtection as $namespace => $rights ) { + ksort( $namespaceProtection ); + foreach ( $namespaceProtection as $namespace => $rights ) { if ( !in_array( $namespace, MWNamespace::getValidNamespaces() ) ) { continue; } @@@ -255,45 -251,54 +255,54 @@@ sort( $r ); $lang = $this->getLanguage(); + $allGroups = User::getAllGroups(); if ( $add === true ) { $r[] = $this->msg( 'listgrouprights-addgroup-all' )->escaped(); - } elseif ( is_array( $add ) && count( $add ) ) { - $add = array_values( array_unique( $add ) ); - $r[] = $this->msg( 'listgrouprights-addgroup', - $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $add ) ), - count( $add ) - )->parse(); + } elseif ( is_array( $add ) ) { + $add = array_intersect( array_values( array_unique( $add ) ), $allGroups ); + if ( count( $add ) ) { + $r[] = $this->msg( 'listgrouprights-addgroup', + $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $add ) ), + count( $add ) + )->parse(); + } } if ( $remove === true ) { $r[] = $this->msg( 'listgrouprights-removegroup-all' )->escaped(); - } elseif ( is_array( $remove ) && count( $remove ) ) { - $remove = array_values( array_unique( $remove ) ); - $r[] = $this->msg( 'listgrouprights-removegroup', - $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $remove ) ), - count( $remove ) - )->parse(); + } elseif ( is_array( $remove ) ) { + $remove = array_intersect( array_values( array_unique( $remove ) ), $allGroups ); + if ( count( $remove ) ) { + $r[] = $this->msg( 'listgrouprights-removegroup', + $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $remove ) ), + count( $remove ) + )->parse(); + } } if ( $addSelf === true ) { $r[] = $this->msg( 'listgrouprights-addgroup-self-all' )->escaped(); - } elseif ( is_array( $addSelf ) && count( $addSelf ) ) { - $addSelf = array_values( array_unique( $addSelf ) ); - $r[] = $this->msg( 'listgrouprights-addgroup-self', - $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $addSelf ) ), - count( $addSelf ) - )->parse(); + } elseif ( is_array( $addSelf ) ) { + $addSelf = array_intersect( array_values( array_unique( $addSelf ) ), $allGroups ); + if ( count( $addSelf ) ) { + $r[] = $this->msg( 'listgrouprights-addgroup-self', + $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $addSelf ) ), + count( $addSelf ) + )->parse(); + } } if ( $removeSelf === true ) { $r[] = $this->msg( 'listgrouprights-removegroup-self-all' )->parse(); - } elseif ( is_array( $removeSelf ) && count( $removeSelf ) ) { - $removeSelf = array_values( array_unique( $removeSelf ) ); - $r[] = $this->msg( 'listgrouprights-removegroup-self', - $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $removeSelf ) ), - count( $removeSelf ) - )->parse(); + } elseif ( is_array( $removeSelf ) ) { + $removeSelf = array_intersect( array_values( array_unique( $removeSelf ) ), $allGroups ); + if ( count( $removeSelf ) ) { + $r[] = $this->msg( 'listgrouprights-removegroup-self', + $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $removeSelf ) ), + count( $removeSelf ) + )->parse(); + } } if ( empty( $r ) ) {