X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fspecials%2FSpecialPasswordPolicies.php;h=cc8753ceae7d5246a2a68bf4fe227397ddfc1955;hp=573dcb52aaf4dedc3488d8a34e9e7563a65aeae3;hb=dfec83932fd38a9086eb5a2e212889ad00f35b0e;hpb=f374b21f62aa36ce238c485eaa36d728e84e9954
diff --git a/includes/specials/SpecialPasswordPolicies.php b/includes/specials/SpecialPasswordPolicies.php
index 573dcb52aa..cc8753ceae 100644
--- a/includes/specials/SpecialPasswordPolicies.php
+++ b/includes/specials/SpecialPasswordPolicies.php
@@ -21,6 +21,8 @@
* @ingroup SpecialPage
*/
+use MediaWiki\MediaWikiServices;
+
/**
* This special page lists the defined password policies for user groups.
* See also @ref $wgPasswordPolicy.
@@ -84,7 +86,8 @@ class SpecialPasswordPolicies extends SpecialPage {
$groupnameLocalized = UserGroupMembership::getGroupName( $group );
$grouppageLocalizedTitle = UserGroupMembership::getGroupPage( $group )
- ?: Title::newFromText( MWNamespace::getCanonicalName( NS_PROJECT ) . ':' . $group );
+ ?: Title::newFromText( MediaWikiServices::getInstance()->getNamespaceInfo()->
+ getCanonicalName( NS_PROJECT ) . ':' . $group );
$grouppage = $linkRenderer->makeLink(
$grouppageLocalizedTitle,
@@ -124,7 +127,7 @@ class SpecialPasswordPolicies extends SpecialPage {
* Create a HTML list of password policies for $group
*
* @param array $policies Original $wgPasswordPolicy array
- * @param array $group Group to format password policies for
+ * @param string $group Group to format password policies for
*
* @return string HTML list of all applied password policies
*/
@@ -136,20 +139,37 @@ class SpecialPasswordPolicies extends SpecialPage {
);
$ret = [];
- foreach ( $groupPolicies as $gp => $val ) {
- if ( $val === false ) {
- // Policy isn't enabled, so no need to dislpay it
+ foreach ( $groupPolicies as $gp => $settings ) {
+ if ( !is_array( $settings ) ) {
+ $settings = [ 'value' => $settings ];
+ }
+ $val = $settings['value'];
+ $flags = array_diff_key( $settings, [ 'value' => true ] );
+ if ( !$val ) {
+ // Policy isn't enabled, so no need to display it
continue;
- } elseif ( $val === true ) {
- $msg = $this->msg( 'passwordpolicies-policy-' . strtolower( $gp ) );
+ }
+ $msg = $this->msg( 'passwordpolicies-policy-' . strtolower( $gp ) )->numParams( $val );
+ $flagMsgs = [];
+ foreach ( array_filter( $flags ) as $flag => $value ) {
+ $flagMsg = $this->msg( 'passwordpolicies-policyflag-' . strtolower( $flag ) );
+ $flagMsg->params( $value );
+ $flagMsgs[] = $flagMsg;
+ }
+ if ( $flagMsgs ) {
+ $ret[] = $this->msg(
+ 'passwordpolicies-policy-displaywithflags',
+ $msg,
+ '' . $gp . '',
+ $this->getLanguage()->commaList( $flagMsgs )
+ )->parse();
} else {
- $msg = $this->msg( 'passwordpolicies-policy-' . strtolower( $gp ) )->numParams( $val );
+ $ret[] = $this->msg(
+ 'passwordpolicies-policy-display',
+ $msg,
+ '' . $gp . ''
+ )->parse();
}
- $ret[] = $this->msg(
- 'passwordpolicies-policy-display',
- $msg,
- '' . $gp . ''
- )->parse();
}
if ( $ret === [] ) {
return '';