// Check if the form should be disabled.
// If it is, the form will be available in read-only to show levels.
$this->mPermErrors = $this->mTitle->getUserPermissionsErrors(
- 'protect', $this->mContext->getUser()
+ 'protect',
+ $this->mContext->getUser(),
+ $this->mContext->getRequest()->wasPosted() ? 'secure' : 'full' // T92357
);
if ( wfReadOnly() ) {
$this->mPermErrors[] = [ 'readonlytext', wfReadOnlyReason() ];
*
* @param string $action
*
- * @return string 14-char timestamp or "infinity", or false if the input was invalid
+ * @return string|false 14-char timestamp or "infinity", or false if the input was invalid
*/
function getExpiry( $action ) {
if ( $this->mExpirySelection[$action] == 'existing' ) {
throw new ErrorPageError( 'protect-badnamespace-title', 'protect-badnamespace-text' );
}
+ $out = $this->mContext->getOutput();
+ if ( !wfMessage( 'protect-dropdown' )->inContentLanguage()->isDisabled() ) {
+ $reasonsList = Xml::getArrayFromWikiTextList(
+ wfMessage( 'protect-dropdown' )->inContentLanguage()->text()
+ );
+ $out->addModules( 'mediawiki.reasonSuggest' );
+ $out->addJsConfigVars( [
+ 'reasons' => $reasonsList
+ ] );
+ }
+
if ( $this->mContext->getRequest()->wasPosted() ) {
if ( $this->save() ) {
$q = $this->mArticle->isRedirect() ? 'redirect=no' : '';
- $this->mContext->getOutput()->redirect( $this->mTitle->getFullURL( $q ) );
+ $out->redirect( $this->mTitle->getFullURL( $q ) );
}
} else {
$this->show();