getUserFactory()->newFromName( $accountName ); // A creatable username must exist to be passed to $logEntry->setPerformer(), // so create the account. $user->addToDatabase(); $creator = $creator ?? $user; $provider = new AbuseFilterPreAuthenticationProvider( AbuseFilterServices::getVariableGeneratorFactory(), AbuseFilterServices::getFilterRunnerFactory(), new NullStatsdDataFactory(), MediaWikiServices::getInstance()->getUserFactory() ); $status = $provider->testForAccountCreation( $user, $creator, [] ); // FIXME This is a bit hacky, but AuthManager doesn't expose any methods for logging $subType = $autocreate ? 'autocreate' : 'create2'; $logEntry = new \ManualLogEntry( 'newusers', $subType ); $logEntry->setPerformer( $creator ); $logEntry->setTarget( Title::makeTitle( NS_USER, $accountName ) ); $logEntry->setComment( 'Fooobarcomment' ); $logEntry->setParameters( [ '4::userid' => $user->getId(), ] ); $logid = $logEntry->insert(); $logEntry->publish( $logid ); $status->value = $logid; return $status; } }