X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialListgrouprights.php;h=5bae28f0803be70030754f5c252153a8823e0084;hb=1fced11531a1a457ccffbd39e423c8536ec44805;hp=b5818eab453ecfc6fd71f55913e5baf76a11f48b;hpb=ec9002258c8a0264cb2d92df6a216e9fa11d3462;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialListgrouprights.php b/includes/specials/SpecialListgrouprights.php index b5818eab45..5bae28f080 100644 --- a/includes/specials/SpecialListgrouprights.php +++ b/includes/specials/SpecialListgrouprights.php @@ -38,10 +38,6 @@ class SpecialListGroupRights extends SpecialPage { * @param string|null $par */ public function execute( $par ) { - global $wgImplicitGroups; - global $wgGroupPermissions, $wgRevokePermissions, $wgAddGroups, $wgRemoveGroups; - global $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf; - $this->setHeaders(); $this->outputHeader(); @@ -58,19 +54,26 @@ class SpecialListGroupRights extends SpecialPage { '' ); + $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' @@ -100,7 +103,7 @@ class SpecialListGroupRights extends SpecialPage { 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(), @@ -112,12 +115,12 @@ class SpecialListGroupRights extends SpecialPage { $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 ); @@ -135,10 +138,11 @@ class SpecialListGroupRights extends SpecialPage { } 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; } @@ -161,8 +165,8 @@ class SpecialListGroupRights extends SpecialPage { ) ); - ksort( $wgNamespaceProtection ); - foreach ( $wgNamespaceProtection as $namespace => $rights ) { + ksort( $namespaceProtection ); + foreach ( $namespaceProtection as $namespace => $rights ) { if ( !in_array( $namespace, MWNamespace::getValidNamespaces() ) ) { continue; } @@ -251,45 +255,54 @@ class SpecialListGroupRights extends SpecialPage { 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 ) ) {