From fdb4557a5a4ee2c2fc8c997d57a43249dcb7d9cb Mon Sep 17 00:00:00 2001 From: Eddie Greiner-Petter Date: Wed, 4 Oct 2017 21:55:59 +0200 Subject: [PATCH] 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 --- autoload.php | 1 + maintenance/purgeExpiredUserrights.php | 42 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 maintenance/purgeExpiredUserrights.php diff --git a/autoload.php b/autoload.php index 4dd5f12876..0a2ecf01c5 100644 --- a/autoload.php +++ b/autoload.php @@ -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', diff --git a/maintenance/purgeExpiredUserrights.php b/maintenance/purgeExpiredUserrights.php new file mode 100644 index 0000000000..7554d4d0f2 --- /dev/null +++ b/maintenance/purgeExpiredUserrights.php @@ -0,0 +1,42 @@ +. + * + * @copyright GPLv2 http://www.gnu.org/copyleft/gpl.html + * @author Eddie Greiner-Petter + * @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; -- 2.20.1