private static function formatPermissions( $permissions, $revoke, $add, $remove, $addSelf, $removeSelf ) {
global $wgLang;
- // prevent double entries if misconfigured, bug 19301
- $add = array_unique( $add );
- $remove = array_unique( $remove );
- $addSelf = array_unique( $addSelf );
- $removeSelf = array_unique( $removeSelf );
-
$r = array();
foreach( $permissions as $permission => $granted ) {
//show as granted only if it isn't revoked to prevent duplicate display of permissions
if( $add === true ){
$r[] = wfMsgExt( 'listgrouprights-addgroup-all', array( 'escape' ) );
} else if( is_array( $add ) && count( $add ) ) {
+ $add = array_unique( $add );
$r[] = wfMsgExt( 'listgrouprights-addgroup', array( 'parseinline' ), $wgLang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $add ) ), count( $add ) );
}
if( $remove === true ){
$r[] = wfMsgExt( 'listgrouprights-removegroup-all', array( 'escape' ) );
} else if( is_array( $remove ) && count( $remove ) ) {
+ $remove = array_unique( $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 ) ) {
+ $addSelf = array_unique( $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 ) ) {
+ $removeSelf = array_unique( $removeSelf );
$r[] = wfMsgExt( 'listgrouprights-removegroup-self', array( 'parseinline' ), $wgLang->listToText( array_map( array( 'User', 'makeGroupLinkWiki' ), $removeSelf ) ), count( $removeSelf ) );
}
if( empty( $r ) ) {