From 91d82fc4aa9a2c3c762a3e77e5f314f7523a7883 Mon Sep 17 00:00:00 2001 From: Alex Monk Date: Mon, 22 Sep 2014 20:04:57 +0100 Subject: [PATCH] Reduce duplication in some Special:ListGroupRights code Change-Id: I05bf9f3eef5f71d2d3789c8a6a1aff09ac46c14e --- includes/specials/SpecialListgrouprights.php | 71 +++++++------------- 1 file changed, 23 insertions(+), 48 deletions(-) diff --git a/includes/specials/SpecialListgrouprights.php b/includes/specials/SpecialListgrouprights.php index 5bae28f080..8b9a0ee450 100644 --- a/includes/specials/SpecialListgrouprights.php +++ b/includes/specials/SpecialListgrouprights.php @@ -235,20 +235,18 @@ class SpecialListGroupRights extends SpecialPage { foreach ( $permissions as $permission => $granted ) { //show as granted only if it isn't revoked to prevent duplicate display of permissions if ( $granted && ( !isset( $revoke[$permission] ) || !$revoke[$permission] ) ) { - $description = $this->msg( 'listgrouprights-right-display', + $r[] = $this->msg( 'listgrouprights-right-display', User::getRightDescription( $permission ), '' . $permission . '' )->parse(); - $r[] = $description; } } foreach ( $revoke as $permission => $revoked ) { if ( $revoked ) { - $description = $this->msg( 'listgrouprights-right-revoked', + $r[] = $this->msg( 'listgrouprights-right-revoked', User::getRightDescription( $permission ), '' . $permission . '' )->parse(); - $r[] = $description; } } @@ -257,51 +255,28 @@ class SpecialListGroupRights extends SpecialPage { $lang = $this->getLanguage(); $allGroups = User::getAllGroups(); - if ( $add === true ) { - $r[] = $this->msg( 'listgrouprights-addgroup-all' )->escaped(); - } 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 ) ) { - $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 ) ) { - $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(); - } - } + $changeGroups = array( + 'addgroup' => $add, + 'removegroup' => $remove, + 'addgroup-self' => $addSelf, + 'removegroup-self' => $removeSelf + ); - if ( $removeSelf === true ) { - $r[] = $this->msg( 'listgrouprights-removegroup-self-all' )->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(); + foreach ( $changeGroups as $messageKey => $changeGroup ) { + if ( $changeGroup === true ) { + // For grep: listgrouprights-addgroup-all, listgrouprights-removegroup-all, + // listgrouprights-addgroup-self-all, listgrouprights-removegroup-self-all + $r[] = $this->msg( 'listgrouprights-' . $messageKey . '-all' )->escaped(); + } elseif ( is_array( $changeGroup ) ) { + $changeGroup = array_intersect( array_values( array_unique( $changeGroup ) ), $allGroups ); + if ( count( $changeGroup ) ) { + // For grep: listgrouprights-addgroup, listgrouprights-removegroup, + // listgrouprights-addgroup-self, listgrouprights-removegroup-self + $r[] = $this->msg( 'listgrouprights-' . $messageKey, + $lang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $changeGroup ) ), + count( $changeGroup ) + )->parse(); + } } } -- 2.20.1