/** * MyBB 1.8 * Copyright 2014 MyBB Group, All Rights Reserved * * Website: http://www.mybb.com * License: http://www.mybb.com/about/license * */ function task_userpruning($task) { global $db, $lang, $mybb, $cache, $plugins; if ($mybb->settings['enablepruning'] != 1) { return; } // Are we pruning by posts? if ($mybb->settings['enableprunebyposts'] == 1) { $in_usergroups = array(); $users = array(); $usergroups = $cache->read('usergroups'); foreach ($usergroups as $gid => $usergroup) { // Exclude admin, moderators, super moderators, banned if ($usergroup['canmodcp'] == 1 || $usergroup['cancp'] == 1 || $usergroup['issupermod'] == 1 || $usergroup['isbannedgroup'] == 1) { continue; } $in_usergroups[] = $gid; } // If we're not pruning unactivated users, then remove them from the criteria if ($mybb->settings['pruneunactived'] == 0) { $key = array_search('5', $in_usergroups); unset($in_usergroups[$key]); } $prunepostcount = (int) $mybb->settings['prunepostcount']; $regdate = TIME_NOW - (int) $mybb->settings['dayspruneregistered'] * 24 * 60 * 60; $usergroups = $db->escape_string(implode(',', $in_usergroups)); $query = $db->simple_select('users', 'uid', "regdate<={$regdate} AND postnum<={$prunepostcount} AND usergroup IN({$usergroups})"); while ($uid = $db->fetch_field($query, 'uid')) { $users[$uid] = $uid; } if ($users && $mybb->settings['prunepostcountall']) { $query = $db->simple_select('posts', 'uid, COUNT(pid) as posts', "uid IN ('" . implode("','", $users) . "') AND visible>0", array('group_by' => 'uid')); while ($user = $db->fetch_array($query)) { if ($user['posts'] >= $prunepostcount) { unset($users[$user['uid']]); } } } } // Are we pruning unactivated users? if ($mybb->settings['pruneunactived'] == 1) { $regdate = TIME_NOW - (int) $mybb->settings['dayspruneunactivated'] * 24 * 60 * 60; $query = $db->simple_select("users", "uid", "regdate<={$regdate} AND usergroup='5'"); while ($user = $db->fetch_array($query)) { $users[$user['uid']] = $user['uid']; } } if (is_object($plugins)) { $args = array('task' => &$task, 'in_usergroups' => &$in_usergroups, 'users' => &$users); $plugins->run_hooks('task_userpruning', $args); } if (!empty($users)) { // Set up user handler. require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete'); // Delete the prunned users $userhandler->delete_user($users, $mybb->settings['prunethreads']); } add_task_log($task, $lang->task_userpruning_ran); }
$buttons[] = $form->generate_submit_button($lang->ban_users); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; case 'multidelete': if ($mybb->input['no']) { admin_redirect("index.php?module=user-users" . $vid_url); // User clicked on 'No } else { if ($mybb->input['processed'] == 1) { // Set up user handler. require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete'); // Delete users $deleted = $userhandler->delete_user($selected); $to_be_deleted = $deleted['deleted_users']; // Get the correct number of deleted users // Update forum stats, remove the cookie and redirect the user my_unsetcookie("inlinemod_useracp"); $mybb->input['action'] = "inline_delete"; log_admin_action($to_be_deleted); $lang->users_deleted = $lang->sprintf($lang->users_deleted, $to_be_deleted); $cache->update_awaitingactivation(); flash_message($lang->users_deleted, 'success'); admin_redirect("index.php?module=user-users" . $vid_url); } $to_be_deleted = count($selected); $lang->confirm_multidelete = $lang->sprintf($lang->confirm_multidelete, my_number_format($to_be_deleted)); $page->output_confirm_action("index.php?module=user-users&action=inline_edit&inline_action=multidelete&my_post_key={$mybb->post_code}&processed=1", $lang->confirm_multidelete); }
"type" => 1, "dateline" => TIME_NOW ); $db->insert_query("banfilters", $insert); } } */ // Clear the profile $userhandler->clear_profile($uid, $mybb->settings['purgespammerbangroup']); $cache->update_banned(); $cache->update_bannedips(); $cache->update_awaitingactivation(); // Update reports cache $cache->update_reportedcontent(); } elseif ($mybb->settings['purgespammerbandelete'] == "delete") { $user_deleted = $userhandler->delete_user($uid, 1); } // Submit the user to stop forum spam if (!empty($mybb->settings['purgespammerapikey'])) { $sfs = @fetch_remote_file("http://stopforumspam.com/add.php?username="******"&ip_addr=" . urlencode(my_inet_ntop($db->unescape_binary($user['lastip']))) . "&email=" . urlencode($user['email']) . "&api_key=" . urlencode($mybb->settings['purgespammerapikey'])); } log_moderator_action(array('uid' => $uid, 'username' => $user['username']), $lang->purgespammer_modlog); if ($user_deleted) { redirect($mybb->settings['bburl'], $lang->purgespammer_success); } else { redirect(get_profile_link($uid), $lang->purgespammer_success); } } else { if ($mybb->input['action'] == "purgespammer") { $plugins->run_hooks("moderation_purgespammer_show"); add_breadcrumb($lang->purgespammer);