public function execute( $par ) {
global $wgOut, $wgImplicitGroups, $wgMessageCache;
global $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups;
+ global $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
$wgMessageCache->loadAllMessages();
$this->setHeaders();
$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>'
);
* @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 ) {
} 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 {
'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',
'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',