1:
|
/* delete user */ elseif ($action == "delete") { checkAdminPermissions("a_can_users_delete", 1); if (isset($_REQUEST['userids'])) $userids = $_REQUEST['userids']; else { if (isset($_GET['userid'])) $userid = intval_array($_GET['userid']); elseif (isset($_POST['userid'])) $userid = intval_array($_POST['userid']); else $userid = array(); $userids = implode(",", $userid); } if (!$userids) acp_error($lang->get("LANG_ACP_USERS_ERROR_SELECTNOUSER")); // form has been sent, delete if (isset($_POST['send'])) { //owner check //Prüfung herausgenommen, da kein Löschen mehr möglich war 04.10.2011 //if($userids == 2) // acp_error($lang->get("LANG_ACP_USERS_ERROR_OWNERCANNOTDELETE")); // //for($i=0;$i<count($userids);$i++) { // if($userids[$i] == 2) // acp_error($lang->get("LANG_ACP_USERS_ERROR_OWNERCANNOTDELETE")); //} // if ($userids) { // check securitylevel if ($wbbuserdata['a_override_max_securitylevel'] != -1) { $result = $db->query("SELECT u.userid,MAX(g.securitylevel) as securitylevel FROM bb".$n."_users u LEFT JOIN bb".$n."_user2groups u2g ON u.userid=u2g.userid LEFT JOIN bb".$n."_groups g ON u2g.groupid=g.groupid WHERE u.userid IN($userids) GROUP BY u.userid"); $userids = ",".$userids; while ($row = $db->fetch_array($result)) if (!checkSecurityLevel($row['securitylevel'])) $userids = str_replace(",".$row['userid'], "", $userids); if ($userids) $userids = wbb_substr($userids, 1); } } if ($userids) { $db->unbuffered_query("DELETE FROM bb".$n."_access WHERE userid IN ($userids)", 1); $result = $db->query("SELECT avatarid, avatarextension FROM bb".$n."_avatars WHERE userid IN ($userids)"); while ($row = $db->fetch_array($result)) @unlink("./../images/avatars/avatar-$row[avatarid].$row[avatarextension]"); $db->unbuffered_query("DELETE FROM bb".$n."_avatars WHERE userid IN ($userids)", 1); // delete pms sent by these users $pmids = ''; $result = $db->query("SELECT privatemessageid FROM bb".$n."_privatemessage WHERE senderid IN ($userids)"); while ($row = $db->fetch_array($result)) $pmids .= (($pmids != '') ? (',') : ('')) . $row['privatemessageid']; if ($pmids != '') { $result = $db->query("SELECT attachmentid, attachmentextension, thumbnailextension FROM bb".$n."_attachments WHERE privatemessageid IN ($pmids) AND postid = 0"); while ($row = $db->fetch_array($result)) { @unlink("./../attachments/attachment-".$row['attachmentid'].".".$row['attachmentextension']); @unlink("./../attachments/thumbnail-".$row['attachmentid'].".".$row['thumbnailextension']); } $db->unbuffered_query("DELETE FROM bb".$n."_attachments WHERE privatemessageid IN ($pmids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_privatemessage WHERE privatemessageid IN ($pmids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_privatemessagereceipts WHERE privatemessageid IN ($pmids)", 1); } // delete pms sent to these users $db->unbuffered_query("UPDATE bb".$n."_privatemessagereceipts SET deletepm=0 WHERE recipientid IN ($userids)", 1); $pmids = ''; $result = $db->query("SELECT privatemessageid FROM bb".$n."_privatemessagereceipts WHERE recipientid IN ($userids)"); while ($row = $db->fetch_array($result)) $pmids .= ",$row[privatemessageid]"; $deletepmids = ''; $result = $db->query("SELECT ". "p.privatemessageid, p.inoutbox, COUNT(pmr.privatemessageid) as receipts ". "FROM bb".$n."_privatemessage p ". "LEFT OUTER JOIN bb".$n."_privatemessagereceipts pmr ON (pmr.privatemessageid=p.privatemessageid AND pmr.deletepm=0) ". "WHERE p.privatemessageid IN (0$pmids) ". "GROUP BY p.privatemessageid"); while ($row = $db->fetch_array($result)) { if ($row['receipts'] == 0 && $row['inoutbox'] == 0) $deletepmids .= ",$row[privatemessageid]"; } if ($deletepmids != '') { $deletepmids = wbb_substr($deletepmids, 1); $db->unbuffered_query("DELETE FROM bb".$n."_privatemessage WHERE privatemessageid IN (".$deletepmids.")", 1); $db->unbuffered_query("DELETE FROM bb".$n."_privatemessagereceipts WHERE privatemessageid IN (".$deletepmids.")", 1); // delete attachments as well $result = $db->query("SELECT attachmentid, attachmentextension, thumbnailextension FROM bb".$n."_attachments WHERE privatemessageid IN (".$deletepmids.") AND postid = 0"); while ($row = $db->fetch_array($result)) { @unlink("./../attachments/attachment-".$row['attachmentid'].".".$row['attachmentextension']); @unlink("./../attachments/thumbnail-".$row['attachmentid'].".".$row['thumbnailextension']); } $db->unbuffered_query("DELETE FROM bb".$n."_attachments WHERE privatemessageid IN (".$deletepmids.")", 1); } $db->unbuffered_query("DELETE FROM bb".$n."_events WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_folders WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_moderators WHERE userid IN ($userids)", 1); $db->unbuffered_query("UPDATE bb".$n."_posts SET userid=0 WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_searchs WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_subscribeboards WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_subscribethreads WHERE userid IN ($userids)", 1); $db->unbuffered_query("UPDATE bb".$n."_threads SET starterid=0 WHERE starterid IN ($userids)", 1); $db->unbuffered_query("UPDATE bb".$n."_threads SET lastposterid=0 WHERE lastposterid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_userfields WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_users WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_votes WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_user2groups WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_votes WHERE id IN ($userids) AND votemode=3", 1); $db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_acpmenuitemgroupscount WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_acpmenuitemscount WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_applications WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_threadvisit WHERE userid IN ($userids)", 1); $db->unbuffered_query("DELETE FROM bb".$n."_boardvisit WHERE userid IN ($userids)", 1); $statupdate = $db->query_first("SELECT COUNT(*) AS usercount, MAX(userid) AS userid FROM bb".$n."_users"); $db->unbuffered_query("UPDATE bb".$n."_stats SET usercount='".$statupdate['usercount']."', lastuserid='".$statupdate['userid']."'", 1); } header("Location: users.php?action=find&sid=$session[hash]"); exit(); } |