Revert r23166, 23178, 23179, and probably some other related bits.

There are issues with putting robots stuff into the current protection system, so we're backing this out to prevent another backwards-compatibility disaster when it's done in a more reliable way. :)
This commit is contained in:
Brion Vibber 2007-06-22 14:52:49 +00:00
parent 73ef5a9d4a
commit cd3924342e
8 changed files with 7 additions and 55 deletions

View file

@ -95,8 +95,6 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
* Throw a showstopper exception when a hook function fails to return a value.
Forgetting to give a 'true' return value is a very common error which tends
to cause hard-to-track-down interactions between extensions.
* (bug 9415) Added options to Special:Protect to allow setting of per-page robot
policies. This can be done only by users with the 'editrobots' permission
* Use $wgJobClasses to determine the correct Job to instantiate for a particular
queued task; allows extensions to introduce custom jobs

View file

@ -641,8 +641,6 @@ class Article {
} elseif( isset( $wgNamespaceRobotPolicies[$ns] ) ) {
# Honour customised robot policies for this namespace
$policy = $wgNamespaceRobotPolicies[$ns];
} elseif ( $this->mTitle->getRestrictions( 'robots' ) ) {
$policy = implode( ',', $this->mTitle->getRestrictions( 'robots' ) );
} else {
# Default to encourage indexing and following links
$policy = 'index,follow';
@ -1677,7 +1675,6 @@ class Article {
$current = array();
foreach( $wgRestrictionTypes as $action )
$current[$action] = implode( '', $this->mTitle->getRestrictions( $action ) );
$current['robots'] = implode( '', $this->mTitle->getRestrictions( 'robots' ) );
$current = Article::flattenRestrictions( $current );
$updated = Article::flattenRestrictions( $limit );
@ -1713,9 +1710,7 @@ class Article {
foreach( $limit as $action => $restrictions ) {
# Check if the group level required to edit also can protect pages
# Otherwise, people who cannot normally protect can "protect" pages via transclusion
if ( in_array( $restrictions, $wgRestrictionTypes ) ) {
$cascade = ( $cascade && isset($wgGroupPermissions[$restrictions]['protect']) && $wgGroupPermissions[$restrictions]['protect'] );
}
$cascade = ( $cascade && isset($wgGroupPermissions[$restrictions]['protect']) && $wgGroupPermissions[$restrictions]['protect'] );
}
$cascade_description = '';

View file

@ -1063,7 +1063,6 @@ $wgGroupPermissions['sysop']['autoconfirmed'] = true;
$wgGroupPermissions['sysop']['upload_by_url'] = true;
$wgGroupPermissions['sysop']['ipblock-exempt'] = true;
$wgGroupPermissions['sysop']['blockemail'] = true;
$wgGroupPermissions['sysop']['editrobots'] = true;
// Permission to change users' group assignments
$wgGroupPermissions['bureaucrat']['userrights'] = true;

View file

@ -43,7 +43,6 @@ class ProtectionForm {
// but the db allows multiples separated by commas.
$this->mRestrictions[$action] = implode( '', $this->mTitle->getRestrictions( $action ) );
}
$this->mRestrictions['robots'] = implode( ',', $this->mTitle->getRestrictions( 'robots' ) );
$this->mCascade = $this->mTitle->areRestrictionsCascading();
@ -73,17 +72,9 @@ class ProtectionForm {
$this->mRestrictions[$action] = $val;
}
}
// Read checkboxes only if user is allowed to change robots policy, otherwise keep previous policy
if ( $wgUser->isAllowed( 'editrobots' ) ) {
$robotspolicy = $wgRequest->getBool( 'mwProtect-robots-noindex' ) ? 'noindex' : 'index';
$robotspolicy .= $wgRequest->getBool( 'mwProtect-robots-nofollow' ) ? ',nofollow' : ',follow';
// 'index,follow' is default, no need to set this explicitly at this point; is done at Article::view()
$this->mRestrictions['robots'] = ( $robotspolicy == 'index,follow' ) ? '' : $robotspolicy;
}
}
}
function execute() {
global $wgRequest;
if( $wgRequest->wasPosted() ) {
@ -208,7 +199,7 @@ class ProtectionForm {
}
function buildForm() {
global $wgUser, $wgRestrictionTypes;
global $wgUser;
$out = '';
if( !$this->disabled ) {
@ -232,17 +223,14 @@ class ProtectionForm {
$out .= "<tr>\n";
foreach( $this->mRestrictions as $action => $required ) {
/* Not all languages have V_x <-> N_x relation */
if ( in_array( $action, $wgRestrictionTypes ) )
$out .= "<th>" . wfMsgHtml( 'restriction-' . $action ) . "</th>\n";
$out .= "<th>" . wfMsgHtml( 'restriction-' . $action ) . "</th>\n";
}
$out .= "</tr>\n";
$out .= "<tr>\n";
foreach( $this->mRestrictions as $action => $selected ) {
if ( in_array( $action, $wgRestrictionTypes ) ) {
$out .= "<td>\n";
$out .= $this->buildSelector( $action, $selected );
$out .= "</td>\n";
}
$out .= "<td>\n";
$out .= $this->buildSelector( $action, $selected );
$out .= "</td>\n";
}
$out .= "</tr>\n";
@ -258,7 +246,6 @@ class ProtectionForm {
if( $wgEnableCascadingProtection )
$out .= '<tr><td></td><td>' . $this->buildCascadeInput() . "</td></tr>\n";
$out .= $this->buildRobotsInput();
$out .= $this->buildExpiryInput();
if( !$this->disabled ) {
@ -328,21 +315,6 @@ class ProtectionForm {
return $ci;
}
function buildRobotsInput() {
global $wgUser, $wgContLang;
$robotsallowed = $wgUser->isAllowed( 'editrobots' ) ? array() : array( 'disabled' => 'disabled' );
$noindexset = ( isset( $this->mRestrictions['robots'] ) && strstr( $this->mRestrictions['robots'], 'noindex' ) ) ? true : false;
$nofollowset = ( isset( $this->mRestrictions['robots'] ) && strstr( $this->mRestrictions['robots'], 'nofollow' ) ) ? true : false;
$ret = "<tr><td align=\"right\">";
$ret .= '<label>' . wfMsgExt( 'protect-robotspolicy', array( 'parseinline' ) ) . '</label>';
$ret .= "</td><td align=\"left\" width=\"60\">";
$ret .= Xml::checkLabel( wfMsgHtml( 'protect-robots-noindex' ), 'mwProtect-robots-noindex', 'mwProtect-robots-noindex', $noindexset, $robotsallowed );
$ret .= $wgContLang->getDirMark();
$ret .= Xml::checkLabel( wfMsgHtml( 'protect-robots-nofollow' ), 'mwProtect-robots-nofollow', 'mwProtect-robots-nofollow', $nofollowset, $robotsallowed );
$ret .= "</td></tr>";
return $ret;
}
function buildExpiryInput() {
$attribs = array( 'id' => 'expires' ) + $this->disabledAttrib;
return '<tr>'

View file

@ -940,9 +940,6 @@ class Title {
if( $this->getNamespace() == NS_SPECIAL )
return true;
if ( $this->getRestrictions( 'robots' ) && $this->getRestrictions( 'robots' ) != '' )
return true;
# Check regular protection levels
if( $action == 'edit' || $action == '' ) {
$r = $this->getRestrictions( 'edit' );

View file

@ -1440,9 +1440,6 @@ Bitte gehen Sie zurück und versuchen den Vorgang erneut auszuführen.',
'protect-summary-cascade' => 'kaskadierend',
'protect-expiring' => 'bis $1 (UTC)',
'protect-cascade' => 'Kaskadierende Sperre alle in diese Seite eingebundenen Vorlagen werden ebenfalls gesperrt.',
'protect-robotspolicy' => 'Anweisung für Suchroboter:',
'protect-robots-noindex' => 'nicht indizieren (noindex)',
'protect-robots-nofollow' => 'Links nicht folgen (nofollow)',
'restriction-type' => 'Schutzstatus',
'restriction-level' => 'Schutzhöhe',
'minimum-size' => 'Mindestgröße:',

View file

@ -1839,9 +1839,6 @@ Here are the current settings for the page <strong>$1</strong>:',
'protect-summary-cascade' => 'cascading',
'protect-expiring' => 'expires $1 (UTC)',
'protect-cascade' => 'Protect pages included in this page (cascading protection)',
'protect-robotspolicy' => 'Robot policy:',
'protect-robots-noindex' => 'Do not index',
'protect-robots-nofollow' => 'Do not follow links',
'restriction-type' => 'Permission:',
'restriction-level' => 'Restriction level:',
'minimum-size' => 'Min size',

View file

@ -1182,9 +1182,6 @@ $wgMessageStructure = array(
'protect-summary-cascade',
'protect-expiring',
'protect-cascade',
'protect-robotspolicy',
'protect-robots-noindex',
'protect-robots-nofollow',
'restriction-type',
'restriction-level',
'minimum-size',