MediaWiki master
purgeExpiredUserrights.php
Go to the documentation of this file.
1<?php
22
23// @codeCoverageIgnoreStart
24require_once __DIR__ . '/Maintenance.php';
25// @codeCoverageIgnoreEnd
26
27/*
28 * Remove expired userrights from user_groups table and move them to former_user_groups.
29 *
30 * By default, this does not need to be run. The UserGroupManager service naturally
31 * takes care of detecting expired rows when it is written to (e.g. from SpecialUserrights)
32 * and queues UserGroupExpiryJob to purge expired rows.
33 *
34 * Large wiki farms may experience stale rows if their users manage local groups
35 * via a central wiki. In that case, UserGroupExpiryJob may run rarely or never
36 * from local wikis, in which case this script can help to periodically clean up
37 * expired rows.
38 *
39 * @since 1.31
40 * @ingroup Maintenance
41 * @author Eddie Greiner-Petter <wikimedia.org at eddie-sh.de>
42 */
44 public function __construct() {
45 parent::__construct();
46 $this->addDescription( 'Move expired userrights from user_groups to former_user_groups table.' );
47 }
48
49 public function execute() {
50 $this->output( "Purging expired user rights...\n" );
51 $res = $this->getServiceContainer()->getUserGroupManager()->purgeExpired();
52 if ( $res === false ) {
53 $this->output( "Purging failed.\n" );
54 } else {
55 $this->output( "$res rows purged.\n" );
56 }
57 }
58}
59
60// @codeCoverageIgnoreStart
61$maintClass = PurgeExpiredUserrights::class;
62require_once RUN_MAINTENANCE_IF_MAIN;
63// @codeCoverageIgnoreEnd
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
output( $out, $channel=null)
Throw some output to the user.
getServiceContainer()
Returns the main service container.
addDescription( $text)
Set the description text.
__construct()
Default constructor.