function execute($par) { global $wgUser, $wgRequest, $wgOut, $wgBaNSpamUser; if (!$this->userCanExecute($wgUser)) { $this->displayRestrictionError(); return; } $this->setHeaders(); $this->outputHeader(); $um = null; $spammer = User::newFromName($wgBaNSpamUser); if (class_exists("UserMerger") && $spammer->getID() != 0) { $um = new UserMerger($this); } $posted = $wgRequest->wasPosted(); if ($posted) { $user_id = $wgRequest->getArray('userid'); $user = $wgRequest->getArray('names'); $pages = $wgRequest->getArray('pages'); $user_2 = $wgRequest->getArray('names_2'); $ips = $wgRequest->getArray('ip'); if ($user) { $wgOut->addHTML(wfMsg("blockandnuke-banhammer")); $this->getNewPages($user); } elseif (count($pages) || count($user_2) || count($ips)) { $wgOut->addHTML(wfMsg("blockandnuke-banning")); $v = false; $v = BanPests::blockUser($user_2, $user_id, $wgUser, $spammer, $um) || BanPests::deletePages($pages, $this) || BanPests::banIPs($ips, $wgUser, $this); if (!$v) { $wgOut->addHTML(wfMsg('blockandnuke-nothing-to-do')); } } else { $wgOut->addHTML(wfMsg('blockandnuke-nothing-to-do')); } } else { $this->showUserForm(); } }
public function execute() { global $wgBaNSpamUser; $this->output("Starting "); $real = $this->hasOption("hammer"); $brief = $this->hasOption("brief"); if (!$real) { $this->output("dry run\n"); } else { $this->output("\n"); } $bannable = BanPests::getBannableUsers(); $pages = BanPests::getBannablePages($bannable); $this->output(sprintf("Found %d bannable users and %d pages:\n", count($bannable), count($pages))); if (count($pages)) { $this->maybeOutput("Pages\n"); foreach ($pages as $page) { if ($page) { $this->maybeOutput("\t{$page}"); if ($real) { $this->maybeOutput(" ... deleting\n"); BanPests::deletePage(Title::newFromURL($page)); } else { $this->maybeOutput("\n"); } } } } $spammer = User::newFromName($wgBaNSpamUser); $banningUser = User::newFromName("WikiSysop"); $um = null; if (class_exists("UserMerger")) { $um = new UserMerger(null); } if (count($bannable)) { $this->maybeOutput("Users\n"); foreach ($bannable as $user) { $this->maybeOutput("\t{$user}"); $u = User::newFromName($user); if ($u === false) { $ips = array($user); } else { $ips = BanPests::getBannableIP($u); } if ($real) { $this->maybeOutput(" ... banning\n"); if ($u !== false) { BanPests::banUser($u, $banningUser, $spammer, $um); } if ($ips) { foreach ($ips as $ip) { $this->maybeOutput("\t\tEnsuring ban on {$ip}\n"); BanPests::banIPs($ip, $banningUser); } } } else { $this->maybeOutput("\n"); foreach ($ips as $ip) { $this->maybeOutput("\t\t{$ip}\n"); } } } } }