* @author Petr Kadlec <mormegil@centrum.cz>
*/
class SpecialListGroupRights extends SpecialPage {
- function __construct() {
+ public function __construct() {
parent::__construct( 'Listgrouprights' );
}
) );
asort( $allGroups );
+ $linkRenderer = $this->getLinkRenderer();
+
foreach ( $allGroups as $group ) {
$permissions = isset( $groupPermissions[$group] )
? $groupPermissions[$group]
? 'all'
: $group;
- $msg = $this->msg( 'group-' . $groupname );
- $groupnameLocalized = !$msg->isBlank() ? $msg->text() : $groupname;
+ $groupnameLocalized = UserGroupMembership::getGroupName( $groupname );
- $msg = $this->msg( 'grouppage-' . $groupname )->inContentLanguage();
- $grouppageLocalized = !$msg->isBlank() ?
- $msg->text() :
- MWNamespace::getCanonicalName( NS_PROJECT ) . ':' . $groupname;
- $grouppageLocalizedTitle = Title::newFromText( $grouppageLocalized );
+ $grouppageLocalizedTitle = UserGroupMembership::getGroupPage( $groupname )
+ ?: Title::newFromText( MWNamespace::getCanonicalName( NS_PROJECT ) . ':' . $groupname );
if ( $group == '*' || !$grouppageLocalizedTitle ) {
// Do not make a link for the generic * group or group with invalid group page
$grouppage = htmlspecialchars( $groupnameLocalized );
} else {
- $grouppage = Linker::link(
+ $grouppage = $linkRenderer->makeLink(
$grouppageLocalizedTitle,
- htmlspecialchars( $groupnameLocalized )
+ $groupnameLocalized
);
}
if ( $group === 'user' ) {
// Link to Special:listusers for implicit group 'user'
- $grouplink = '<br />' . Linker::linkKnown(
+ $grouplink = '<br />' . $linkRenderer->makeKnownLink(
SpecialPage::getTitleFor( 'Listusers' ),
- $this->msg( 'listgrouprights-members' )->escaped()
+ $this->msg( 'listgrouprights-members' )->text()
);
} elseif ( !in_array( $group, $config->get( 'ImplicitGroups' ) ) ) {
- $grouplink = '<br />' . Linker::linkKnown(
+ $grouplink = '<br />' . $linkRenderer->makeKnownLink(
SpecialPage::getTitleFor( 'Listusers' ),
- $this->msg( 'listgrouprights-members' )->escaped(),
+ $this->msg( 'listgrouprights-members' )->text(),
[],
[ 'group' => $group ]
);
? $groupsRemoveFromSelf[$group]
: [];
- $id = $group == '*' ? false : Sanitizer::escapeId( $group );
+ $id = $group == '*' ? false : Sanitizer::escapeIdForAttribute( $group );
$out->addHTML( Html::rawElement( 'tr', [ 'id' => $id ], "
<td>$grouppage$grouplink</td>
<td>" .
}
private function outputNamespaceProtectionInfo() {
- global $wgParser, $wgContLang;
+ global $wgContLang;
$out = $this->getOutput();
$namespaceProtection = $this->getConfig()->get( 'NamespaceProtection' );
return;
}
- $header = $this->msg( 'listgrouprights-namespaceprotection-header' )->parse();
+ $header = $this->msg( 'listgrouprights-namespaceprotection-header' )->text();
$out->addHTML(
Html::rawElement( 'h2', [], Html::element( 'span', [
'class' => 'mw-headline',
- 'id' => $wgParser->guessSectionNameFromWikiText( $header )
+ 'id' => substr( Parser::guessSectionNameFromStrippedText( $header ), 1 )
], $header ) ) .
Xml::openElement( 'table', [ 'class' => 'wikitable' ] ) .
Html::element(
$this->msg( 'listgrouprights-namespaceprotection-restrictedto' )->text()
)
);
-
+ $linkRenderer = $this->getLinkRenderer();
ksort( $namespaceProtection );
foreach ( $namespaceProtection as $namespace => $rights ) {
if ( !in_array( $namespace, MWNamespace::getValidNamespaces() ) ) {
Html::rawElement(
'td',
[],
- Linker::link(
+ $linkRenderer->makeLink(
SpecialPage::getTitleFor( 'Allpages' ),
- htmlspecialchars( $namespaceText ),
+ $namespaceText,
[],
[ 'namespace' => $namespace ]
)
* @param array $remove Array of groups this group is allowed to remove or true
* @param array $addSelf Array of groups this group is allowed to add to self or true
* @param array $removeSelf Array of group this group is allowed to remove from self or true
- * @return string List of all granted permissions, separated by comma separator
+ * @return string HTML list of all granted permissions
*/
private function formatPermissions( $permissions, $revoke, $add, $remove, $addSelf, $removeSelf ) {
$r = [];
} elseif ( is_array( $changeGroup ) ) {
$changeGroup = array_intersect( array_values( array_unique( $changeGroup ) ), $allGroups );
if ( count( $changeGroup ) ) {
+ $groupLinks = [];
+ foreach ( $changeGroup as $group ) {
+ $groupLinks[] = UserGroupMembership::getLink( $group, $this->getContext(), 'wiki' );
+ }
// For grep: listgrouprights-addgroup, listgrouprights-removegroup,
// listgrouprights-addgroup-self, listgrouprights-removegroup-self
$r[] = $this->msg( 'listgrouprights-' . $messageKey,
- $lang->listToText( array_map( [ 'User', 'makeGroupLinkWiki' ], $changeGroup ) ),
- count( $changeGroup )
- )->parse();
+ $lang->listToText( $groupLinks ), count( $changeGroup ) )->parse();
}
}
}