Add $wgGroupsAddToSelf and $wgGroupsRemoveFromSelf in Special:ListGroupRights (bug...
authorRobin Pepermans <robin@users.mediawiki.org>
Mon, 4 May 2009 19:16:21 +0000 (19:16 +0000)
committerRobin Pepermans <robin@users.mediawiki.org>
Mon, 4 May 2009 19:16:21 +0000 (19:16 +0000)
includes/specials/SpecialListgrouprights.php
languages/messages/MessagesEn.php
maintenance/language/messages.inc

index d1fc081..06652d3 100644 (file)
@@ -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(
                                '<tr>
                                        <td>' .
                                                $grouppage . $grouplink .
                                        '</td>
                                        <td>' .
-                                               self::formatPermissions( $permissions, $addgroups, $removegroups ) .
+                                               self::formatPermissions( $permissions, $addgroups, $removegroups, $addgroupsSelf, $removegroupsSelf ) .
                                        '</td>
                                </tr>'
                        );
@@ -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 {
index 0447c67..c6c05dc 100644 (file)
@@ -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',
index 3a67004..626604e 100644 (file)
@@ -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',