Page MenuHomeWickedGov Phorge

expireTemporaryAccounts.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

expireTemporaryAccounts.php

<?php
namespace MediaWiki\Extension\CentralAuth\Maintenance;
use ExpireTemporaryAccounts;
use Iterator;
use LogicException;
use MediaWiki\Extension\CentralAuth\CentralAuthServices;
use MediaWiki\Extension\CentralAuth\User\GlobalUserSelectQueryBuilder;
use MediaWiki\Extension\CentralAuth\User\GlobalUserSelectQueryBuilderFactory;
use Wikimedia\LightweightObjectStore\ExpirationAwareness;
use Wikimedia\Rdbms\SelectQueryBuilder;
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
$IP = __DIR__ . '/../../..';
}
require_once "$IP/maintenance/expireTemporaryAccounts.php";
// @phpcs:ignore MediaWiki.Files.ClassMatchesFilename.NotMatch
class CentralAuthExpireTemporaryAccounts extends ExpireTemporaryAccounts {
private GlobalUserSelectQueryBuilderFactory $globalUserSelectQueryBuilderFactory;
/**
* @inheritDoc
*/
protected function initServices(): void {
parent::initServices();
$this->globalUserSelectQueryBuilderFactory = CentralAuthServices::getGlobalUserSelectQueryBuilderFactory();
}
/**
* @inheritDoc
*/
protected function getTempAccountsToExpireQueryBuilder(
int $registeredBeforeUnix,
int $frequencyDays
): SelectQueryBuilder {
return $this->globalUserSelectQueryBuilderFactory->newGlobalUserSelectQueryBuilder()
->temp()
->whereRegisteredTimestamp( wfTimestamp(
TS_MW,
$registeredBeforeUnix
), true )
->whereRegisteredTimestamp( wfTimestamp(
TS_MW,
$registeredBeforeUnix - ExpirationAwareness::TTL_DAY * $frequencyDays
), false );
}
/**
* @inheritDoc
*/
protected function queryBuilderToUserIdentities( SelectQueryBuilder $queryBuilder ): Iterator {
if ( $queryBuilder instanceof GlobalUserSelectQueryBuilder ) {
return $queryBuilder->fetchLocalUserIdentitites();
}
// not expected to happen; might be caused by an error in core's expireTemporaryAccounts.php?
throw new LogicException( '$queryBuilder is not GlobalUserSelectQueryBuilder' );
}
}
$maintClass = CentralAuthExpireTemporaryAccounts::class;
require_once RUN_MAINTENANCE_IF_MAIN;

File Metadata

Mime Type
text/x-php
Expires
Oct 4 2026, 08:22 (5 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
f7/01/3d967522620e059bd1461bf4a66f
Default Alt Text
expireTemporaryAccounts.php (1 KB)

Event Timeline