45 $out->addModuleStyles(
'mediawiki.special' );
51 Xml::openElement(
'table', [
'class' =>
'wikitable mw-passwordpolicies-table' ] ) .
53 Xml::element(
'th',
null, $this->
msg(
'passwordpolicies-group' )->
text() ) .
54 Xml::element(
'th',
null, $this->
msg(
'passwordpolicies-policies' )->
text() ) .
59 $policies = $config->get(
'PasswordPolicy' );
61 $groupPermissions = $config->get(
'GroupPermissions' );
62 $revokePermissions = $config->get(
'RevokePermissions' );
63 $addGroups = $config->get(
'AddGroups' );
64 $removeGroups = $config->get(
'RemoveGroups' );
65 $groupsAddToSelf = $config->get(
'GroupsAddToSelf' );
66 $groupsRemoveFromSelf = $config->get(
'GroupsRemoveFromSelf' );
67 $allGroups = array_unique( array_merge(
68 array_keys( $groupPermissions ),
69 array_keys( $revokePermissions ),
70 array_keys( $addGroups ),
71 array_keys( $removeGroups ),
72 array_keys( $groupsAddToSelf ),
73 array_keys( $groupsRemoveFromSelf )
79 foreach ( $allGroups as $group ) {
80 if ( $group ==
'*' ) {
84 $groupnameLocalized = UserGroupMembership::getGroupName( $group );
86 $grouppageLocalizedTitle = UserGroupMembership::getGroupPage( $group )
87 ?: Title::newFromText( MWNamespace::getCanonicalName(
NS_PROJECT ) .
':' . $group );
90 $grouppageLocalizedTitle,
94 if ( $group ===
'user' ) {
98 $this->
msg(
'listgrouprights-members' )->
text()
100 } elseif ( !in_array( $group, $config->get(
'ImplicitGroups' ) ) ) {
103 $this->
msg(
'listgrouprights-members' )->
text(),
105 [
'group' => $group ]
112 $out->addHTML( Html::rawElement(
'tr', [
'id' => Sanitizer::escapeIdForAttribute( $group ) ],
"
113 <td>$grouppage$grouplink</td>
120 $out->addHTML( Xml::closeElement(
'table' ) );