Add maintenance script: Clean up expired userrights

This adds a maintenance script that removes all expired user group
entries from the user_groups table and adds them to the
user_former_groups table.

Bug: T176754
Change-Id: Ie0f4afd3dbecd3af42e89bb99cf03dbe03768d07
This commit is contained in:
Eddie Greiner-Petter 2017-10-04 21:55:59 +02:00
parent a7f7bc7981
commit fdb4557a5a
2 changed files with 43 additions and 0 deletions

View file

@ -1165,6 +1165,7 @@ $wgAutoloadLocalClasses = [
'PurgeAction' => __DIR__ . '/includes/actions/PurgeAction.php',
'PurgeChangedFiles' => __DIR__ . '/maintenance/purgeChangedFiles.php',
'PurgeChangedPages' => __DIR__ . '/maintenance/purgeChangedPages.php',
'PurgeExpiredUserrights' => __DIR__ . '/maintenance/purgeExpiredUserrights.php',
'PurgeJobUtils' => __DIR__ . '/includes/jobqueue/utils/PurgeJobUtils.php',
'PurgeList' => __DIR__ . '/maintenance/purgeList.php',
'PurgeModuleDeps' => __DIR__ . '/maintenance/purgeModuleDeps.php',

View file

@ -0,0 +1,42 @@
<?php
/**
* Remove expired userrights from user_groups table and move them to former_user_groups
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright GPLv2 http://www.gnu.org/copyleft/gpl.html
* @author Eddie Greiner-Petter <wikimedia.org at eddie-sh.de>
* @ingroup Maintenance
* @since 1.31
*/
require_once __DIR__ . '/Maintenance.php';
class PurgeExpiredUserrights extends Maintenance {
public function __construct() {
parent::__construct();
$this->addDescription( 'Move expired userrights from user_groups to former_user_groups table.' );
}
public function execute() {
$this->output( "Purging expired user rights...\n" );
UserGroupMembership::purgeExpired();
$this->output(
"Purge requests submitted. (These requests are deferred and may not have immediate effect.)\n"
);
}
}
$maintClass = "PurgeExpiredUserrights";
require_once RUN_MAINTENANCE_IF_MAIN;