$sql .= ', groupexpiry=\'' . groupexpiry($member['groupterms']) . '\''; } else { $query = DB::query("SELECT groupid FROM " . DB::table('common_usergroup') . " WHERE type='member' AND creditshigher<='{$member['credits']}' AND creditslower>'{$member['credits']}'"); $groupidnew = DB::result($query, 0); $adminidnew = 0; } } else { $groupidnew = $member['groupid']; $adminidnew = $member['adminid']; } $sql .= ", adminid='{$adminidnew}', groupid='{$groupidnew}'"; DB::query("UPDATE " . DB::table('common_member') . " SET {$sql} WHERE uid='{$member['uid']}'"); $my_opt = in_array($groupidnew, array(4, 5)) ? 'banuser' : 'unbanuser'; my_thread_log($my_opt, array('uid' => $member['uid'])); if (DB::affected_rows()) { savebanlog($member['username'], $member['groupid'], $groupidnew, $banexpirynew, $reason); } DB::query("UPDATE " . DB::table('common_member_field_forum') . " SET groupterms='" . ($member['groupterms'] ? addslashes(serialize($member['groupterms'])) : '') . "' WHERE uid='{$member['uid']}'"); acpmsg('modcp_member_ban_succeed', "{$cpscript}?mod=modcp&action={$_G['gp_action']}&op={$op}"); } } elseif ($op == 'ipban' && $_G['group']['allowbanip']) { require_once libfile('function/misc'); $iptoban = getgpc('ip') ? dhtmlspecialchars(explode('.', getgpc('ip'))) : array('', '', '', ''); $updatecheck = $addcheck = $deletecheck = $adderror = 0; if (submitcheck('ipbansubmit')) { $_G['gp_delete'] = isset($_G['gp_delete']) ? $_G['gp_delete'] : ''; if ($ids = dimplode($_G['gp_delete'])) { DB::query("DELETE FROM " . DB::table('common_banned') . " WHERE id IN ({$ids}) AND ('{$_G['adminid']}'='1' OR admin='{$_G['username']}')"); $deletecheck = DB::affected_rows(); } if ($_G['gp_ip1new'] != '' && $_G['gp_ip2new'] != '' && $_G['gp_ip3new'] != '' && $_G['gp_ip4new'] != '') {
protected function _handleEvilUser($uid, $evilType, $evilLevel = 1) { global $_G; include_once DISCUZ_ROOT . './source/language/lang_admincp_cloud.php'; $securityService = Cloud::loadClass('Service_Security'); $securityService->writeLog($uid, 'uid'); $evilUser = C::t('#security#security_eviluser')->fetch($uid); if (count($evilUser)) { $data = $evilUser; $data['evilcount'] = $evilUser['evilcount'] + 1; } else { if ($this->_checkUserIgnore($uid)) { return false; } $data = array('uid' => $uid, 'evilcount' => 1, 'eviltype' => $evilType, 'createtime' => TIMESTAMP); $user = C::t('common_member')->fetch($uid, 0, 1); C::t('#security#security_eviluser')->insert($data, false, true); $this->_updateEvilCount('member'); if (is_array($user)) { require_once libfile('function/misc'); $update = C::t('common_member')->update($uid, array('groupid' => 4)); if ($update) { $_G['member']['username'] = '******'; savebanlog($user['username'], $user['groupid'], 4, 0, $extend_lang['security_modreason']); } } else { $data['operateresult'] = 2; C::t('#security#security_eviluser')->insert($data, false, true); } } return true; }
function handleEvilUser($uid, $evilType, $evilLevel = 1) { global $_G; if (notOpenService()) { return false; } include_once DISCUZ_ROOT . './source/language/lang_admincp_cloud.php'; loadSecLog($uid, 'uid'); $evilUser = DB::fetch_first("SELECT * FROM " . DB::table('security_eviluser') . " WHERE uid='{$uid}'"); if (is_array($evilUser)) { $data = $evilUser; $data['evilcount'] = $evilUser['evilcount'] + 1; } else { if (checkUserIgnore($uid)) { return true; } $data = array('uid' => $uid, 'evilcount' => 1, 'eviltype' => $evilType, 'createtime' => TIMESTAMP); $user = DB::fetch_first("SELECT * FROM " . DB::table('common_member') . " WHERE uid = '{$uid}'"); DB::insert('security_eviluser', $data, 0, 1); updateEvilCount('member'); if (is_array($user)) { require_once libfile('function/misc'); $update = DB::update('common_member', array('groupid' => 4), "uid = '" . $uid . "'"); if ($update) { $_G['member']['username'] = '******'; savebanlog($user['username'], $user['groupid'], 3, 0, $extend_lang['security_modreason']); } } else { $data['operateresult'] = 2; DB::insert('security_eviluser', $data, 0, 1); } } return true; }