X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FProtectionForm.php;h=17e43728d5576cb91b36833224fb05debd08f409;hb=6e63a509ebaef1259e779da6b421c418955b1cdd;hp=e844a1e9ab4dac5a73bd16e0e86ce7f58da470d2;hpb=0335c4c6e103d04824a12300049ab471c01d2967;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ProtectionForm.php b/includes/ProtectionForm.php index e844a1e9ab..17e43728d5 100644 --- a/includes/ProtectionForm.php +++ b/includes/ProtectionForm.php @@ -139,7 +139,7 @@ class ProtectionForm { if( !$wgUser->isAllowedAny( 'protect', 'editprotected' ) ) continue; } else { - if( !$wgUser->isAllowed($val) ) + if( !$wgUser->isAllowed( $val ) ) continue; } $this->mRestrictions[$action] = $val; @@ -207,6 +207,7 @@ class ProtectionForm { global $wgOut; $wgOut->setRobotPolicy( 'noindex,nofollow' ); + $wgOut->addBacklinkSubtitle( $this->mTitle ); if ( is_array( $err ) ) { $wgOut->wrapWikiMsg( "

\n$1\n

\n", $err ); @@ -214,15 +215,27 @@ class ProtectionForm { $wgOut->addHTML( "

{$err}

\n" ); } + if ( $this->mTitle->getRestrictionTypes() === array() ) { + // No restriction types available for the current title + // this might happen if an extension alters the available types + $wgOut->setPageTitle( wfMessage( 'protect-norestrictiontypes-title', $this->mTitle->getPrefixedText() ) ); + $wgOut->addWikiText( wfMessage( 'protect-norestrictiontypes-text' )->text() ); + + // Show the log in case protection was possible once + $this->showLogExtract( $wgOut ); + // return as there isn't anything else we can do + return; + } + list( $cascadeSources, /* $restrictions */ ) = $this->mTitle->getCascadeProtectionSources(); - if ( $cascadeSources && count($cascadeSources) > 0 ) { + if ( $cascadeSources && count( $cascadeSources ) > 0 ) { $titles = ''; foreach ( $cascadeSources as $title ) { $titles .= '* [[:' . $title->getPrefixedText() . "]]\n"; } - $wgOut->wrapWikiMsg( "
\n$1\n" . $titles . "
", array( 'protect-cascadeon', count($cascadeSources) ) ); + $wgOut->wrapWikiMsg( "
\n$1\n" . $titles . "
", array( 'protect-cascadeon', count( $cascadeSources ) ) ); } # Show an appropriate message if the user isn't allowed or able to change @@ -236,7 +249,6 @@ class ProtectionForm { wfEscapeWikiText( $this->mTitle->getPrefixedText() ) ); } - $wgOut->addBacklinkSubtitle( $this->mTitle ); $wgOut->addHTML( $this->buildForm() ); $this->showLogExtract( $wgOut ); } @@ -272,7 +284,7 @@ class ProtectionForm { $expiry = array(); foreach( $this->mApplicableTypes as $action ) { $expiry[$action] = $this->getExpiry( $action ); - if( empty($this->mRestrictions[$action]) ) + if( empty( $this->mRestrictions[$action] ) ) continue; // unprotected if ( !$expiry[$action] ) { $this->show( array( 'protect_expiry_invalid' ) ); @@ -288,7 +300,7 @@ class ProtectionForm { # to a semi-protected page. $edit_restriction = isset( $this->mRestrictions['edit'] ) ? $this->mRestrictions['edit'] : ''; $this->mCascade = $wgRequest->getBool( 'mwProtect-cascade' ); - if ($this->mCascade && ($edit_restriction != 'protect') && + if ( $this->mCascade && ($edit_restriction != 'protect') && !User::groupHasPermission( $edit_restriction, 'protect' ) ) $this->mCascade = false; @@ -400,14 +412,14 @@ class ProtectionForm { wfMessage( 'protect-othertime-op' )->text(), "othertime" ) . "\n"; - foreach( explode(',', $scExpiryOptions) as $option ) { - if ( strpos($option, ":") === false ) { + foreach( explode( ',', $scExpiryOptions ) as $option ) { + if ( strpos( $option, ":" ) === false ) { $show = $value = $option; } else { - list($show, $value) = explode(":", $option); + list( $show, $value ) = explode( ":", $option ); } - $show = htmlspecialchars($show); - $value = htmlspecialchars($value); + $show = htmlspecialchars( $show ); + $value = htmlspecialchars( $value ); $expiryFormOptions .= Xml::option( $show, $value, $this->mExpirySelection[$action] === $value ) . "\n"; } # Add expiry dropdown @@ -446,7 +458,7 @@ class ProtectionForm { ""; } # Give extensions a chance to add items to the form - wfRunHooks( 'ProtectionForm::buildForm', array($this->mArticle,&$out) ); + wfRunHooks( 'ProtectionForm::buildForm', array( $this->mArticle, &$out ) ); $out .= Xml::closeElement( 'tbody' ) . Xml::closeElement( 'table' ); @@ -557,7 +569,7 @@ class ProtectionForm { if( !$wgUser->isAllowedAny( 'protect', 'editprotected' ) && !$this->disabled ) continue; } else { - if( !$wgUser->isAllowed($key) && !$this->disabled ) + if( !$wgUser->isAllowed( $key ) && !$this->disabled ) continue; } $levels[] = $key; @@ -632,6 +644,6 @@ class ProtectionForm { $out->addHTML( Xml::element( 'h2', null, $protectLogPage->getName()->text() ) ); LogEventsList::showLogExtract( $out, 'protect', $this->mTitle ); # Let extensions add other relevant log extracts - wfRunHooks( 'ProtectionForm::showLogExtract', array($this->mArticle,$out) ); + wfRunHooks( 'ProtectionForm::showLogExtract', array( $this->mArticle, $out ) ); } }