/** * Hook for user creation form submissions. * @param User $u * @param string $message * @return bool true to continue, false to abort user creation */ function asAbortNewAccountHook($user, &$message) { global $wgAntiSpoofAccounts, $wgUser, $wgRequest; wfLoadExtensionMessages('AntiSpoof'); if (!$wgAntiSpoofAccounts) { $mode = 'LOGGING '; $active = false; } elseif ($wgRequest->getCheck('wpIgnoreAntiSpoof') && $wgUser->isAllowed('override-antispoof')) { $mode = 'OVERRIDE '; $active = false; } else { $mode = ''; $active = true; } $name = $user->getName(); $spoof = new SpoofUser($name); if ($spoof->isLegal()) { $normalized = $spoof->getNormalized(); $conflict = $spoof->getConflict(); if ($conflict === false) { wfDebugLog('antispoof', "{$mode}PASS new account '{$name}' [{$normalized}]"); } else { wfDebugLog('antispoof', "{$mode}CONFLICT new account '{$name}' [{$normalized}] spoofs '{$conflict}'"); if ($active) { $message = wfMsg('antispoof-name-conflict', $name, $conflict); return false; } } } else { $error = $spoof->getError(); wfDebugLog('antispoof', "{$mode}ILLEGAL new account '{$name}' {$error}"); if ($active) { $message = wfMsg('antispoof-name-illegal', $name, $error); return false; } } return true; }