mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-15 10:35:48 +00:00
97e70ba3cc
We want to flip the default of visualeditor-enable to true, but don't necessarily want to turn it on for users who already have contributions but who haven't already enabled it. Therefore we're considering adding such users to this autodisable preference which they can self-remove (by explicitly enabling VE) or we can target later, separate from betatempdisable users. Bug: T112352 Change-Id: I1ce5e6c92055e30fdc82bc912a767e913b190ef6
64 lines
1.7 KiB
PHP
64 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Sets the VisualEditor autodisable preference on appropriate users.
|
|
*
|
|
* @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
* @author Alex Monk <amonk@wikimedia.org>
|
|
* @file
|
|
* @ingroup Extensions
|
|
* @ingroup Maintenance
|
|
*/
|
|
|
|
require_once ( getenv( 'MW_INSTALL_PATH' ) !== false
|
|
? getenv( 'MW_INSTALL_PATH' ) . '/maintenance/Maintenance.php'
|
|
: __DIR__ . '/../../../maintenance/Maintenance.php' );
|
|
|
|
class VEAutodisablePref extends Maintenance {
|
|
public function __construct() {
|
|
parent::__construct();
|
|
$this->mDescription = "Sets the VisualEditor autodisable preference on appropriate users.";
|
|
$this->setBatchSize( 500 );
|
|
}
|
|
|
|
public function execute() {
|
|
$dbr = wfGetDB( DB_SLAVE );
|
|
|
|
$lastUserId = -1;
|
|
do {
|
|
$results = $dbr->select(
|
|
array( 'user', 'user_properties' ),
|
|
'user_id',
|
|
array(
|
|
'user_id > ' . $dbr->addQuotes( $lastUserId ),
|
|
'up_value IS NULL', // only select users with no entry in user_properties
|
|
'user_editcount > 0'
|
|
),
|
|
__METHOD__,
|
|
array(
|
|
'LIMIT' => $this->mBatchSize,
|
|
'ORDER BY' => 'user_id'
|
|
),
|
|
array(
|
|
'user_properties' => array(
|
|
'LEFT OUTER JOIN',
|
|
'user_id = up_user and up_property = "visualeditor-enable"'
|
|
)
|
|
)
|
|
);
|
|
foreach ( $results as $userRow ) {
|
|
$user = User::newFromId( $userRow->user_id );
|
|
$user->setOption( 'visualeditor-autodisable', true );
|
|
$user->saveSettings();
|
|
$lastUserId = $userRow->user_id;
|
|
}
|
|
$this->output( "Added preference for " . count( $results ) . " users." );
|
|
wfWaitForSlaves();
|
|
} while ( $results->numRows() );
|
|
$this->output( "done.\n" );
|
|
}
|
|
}
|
|
|
|
$maintClass = "VEAutodisablePref";
|
|
require_once RUN_MAINTENANCE_IF_MAIN;
|