From: Robin Pepermans Date: Mon, 4 May 2009 19:16:21 +0000 (+0000) Subject: Add $wgGroupsAddToSelf and $wgGroupsRemoveFromSelf in Special:ListGroupRights (bug... X-Git-Tag: 1.31.0-rc.0~41883 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/password.php?a=commitdiff_plain;h=6feccb2e14c557d45e64d3b8e777566689a3255c;p=lhc%2Fweb%2Fwiklou.git Add $wgGroupsAddToSelf and $wgGroupsRemoveFromSelf in Special:ListGroupRights (bug 15061), the same way as $wgAddGroups and $wgRemoveGroups --- diff --git a/includes/specials/SpecialListgrouprights.php b/includes/specials/SpecialListgrouprights.php index d1fc0818e2..06652d31d4 100644 --- a/includes/specials/SpecialListgrouprights.php +++ b/includes/specials/SpecialListgrouprights.php @@ -26,6 +26,7 @@ class SpecialListGroupRights extends SpecialPage { public function execute( $par ) { global $wgOut, $wgImplicitGroups, $wgMessageCache; global $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups; + global $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf; $wgMessageCache->loadAllMessages(); $this->setHeaders(); @@ -76,13 +77,16 @@ class SpecialListGroupRights extends SpecialPage { $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] : array(); + $wgOut->addHTML( ' ' . $grouppage . $grouplink . ' ' . - self::formatPermissions( $permissions, $addgroups, $removegroups ) . + self::formatPermissions( $permissions, $addgroups, $removegroups, $addgroupsSelf, $removegroupsSelf ) . ' ' ); @@ -98,7 +102,7 @@ class SpecialListGroupRights extends SpecialPage { * @param $permissions Array of permission => bool (from $wgGroupPermissions items) * @return string List of all granted permissions, separated by comma separator */ - private static function formatPermissions( $permissions, $add, $remove ) { + private static function formatPermissions( $permissions, $add, $remove, $addSelf, $removeSelf ) { global $wgLang; $r = array(); foreach( $permissions as $permission => $granted ) { @@ -121,6 +125,16 @@ class SpecialListGroupRights extends SpecialPage { } else if( is_array( $remove ) && count( $remove ) ) { $r[] = wfMsgExt( 'listgrouprights-removegroup', array( 'parseinline' ), $wgLang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $remove ) ), count( $remove ) ); } + if( $addSelf === true ){ + $r[] = wfMsgExt( 'listgrouprights-addgroup-self-all', array( 'escape' ) ); + } else if( is_array( $addSelf ) && count( $addSelf ) ) { + $r[] = wfMsgExt( 'listgrouprights-addgroup-self', array( 'parseinline' ), $wgLang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $addSelf ) ), count( $addSelf ) ); + } + if( $removeSelf === true ){ + $r[] = wfMsgExt( 'listgrouprights-removegroup-self-all', array( 'escape' ) ); + } else if( is_array( $removeSelf ) && count( $removeSelf ) ) { + $r[] = wfMsgExt( 'listgrouprights-removegroup-self', array( 'parseinline' ), $wgLang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $removeSelf ) ), count( $removeSelf ) ); + } if( empty( $r ) ) { return ''; } else { diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 0447c676f1..c6c05dcba0 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -2286,6 +2286,10 @@ There may be [[{{MediaWiki:Listgrouprights-helppage}}|additional information]] a 'listgrouprights-removegroup' => 'Can remove {{PLURAL:$2|group|groups}}: $1', 'listgrouprights-addgroup-all' => 'Can add all groups', 'listgrouprights-removegroup-all' => 'Can remove all groups', +'listgrouprights-addgroup-self' => 'Can add {{PLURAL:$2|group|groups}} to own account: $1', +'listgrouprights-removegroup-self' => 'Can remove {{PLURAL:$2|group|groups}} to own account: $1', +'listgrouprights-addgroup-self-all' => 'Can add all groups to own account', +'listgrouprights-removegroup-self-all' => 'Can remove all groups to own account', # E-mail user 'mailnologin' => 'No send address', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 3a67004a16..626604edf5 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -1535,6 +1535,11 @@ $wgMessageStructure = array( 'listgrouprights-removegroup', 'listgrouprights-addgroup-all', 'listgrouprights-removegroup-all', + 'listgrouprights-addgroup-self', + 'listgrouprights-removegroup-self', + 'listgrouprights-addgroup-self-all', + 'listgrouprights-removegroup-self-all', + ), 'emailuser' => array( 'mailnologin',