95) SQL_EmptyQuery("DELETE FROM {$GLOBALS['sql_prefix']}ban WHERE expiresnow() OR perm IS TRUE) AND (type & {$GLOBALS['BAN_TYPES']['ban']} != 0) LIMIT 1", NULL, __FILE__.' : '.__LINE__.' : '.__FUNCTION__); if (SQL_NumRows($rez) > 0) { $row = SQL_FetchAssoc($rez); if ($row['perm'] == 't') $GLOBALS['bantime'] = 525600; else $GLOBALS['bantime'] = ceil(($row['utime']-$time)/60); } else { $GLOBALS['bantime'] = 0; } SQL_FreeResult($rez); } return $row; } function SetIgnoreBan($ident='', $uid=0, $chat=0, $auth=0, $expire=0, $perm=false, $type=1, $hmask='', $ipmask='', $authid='', $hostmask='') { if ($type & $GLOBALS['BAN_TYPES']['all'] == 0) die('
Horrible Crash! Type is not valid!
'); if ($type & $GLOBALS['BAN_TYPES']['ignore']) { $ignore = array(); $ignore['ident'] = $ident; $ignore['uid'] = $uid; if ($perm) $ignore['expire'] = 2147400000; else $ignore['expire'] = time()+($expire*60); $ignore['perm'] = $perm; $ignore['hmask'] = $hmask; $ignore['ipmask'] = $ipmask; $_SESSION['chats'][$chat]['ignore'][] = $ignore; sort($_SESSION['chats'][$chat]['ignore']); } if (empty($authid)) $authid = $_SESSION['session_id']; $authid = SQL_EscapeOrNullString($authid); $ident = SQL_EscapeOrNullString($ident); $uid = SQL_EscapeOrNullInt($uid); $chat = SQL_EscapeOrNullInt($chat); $auth = SQL_EscapeOrNullInt($auth); $expire = floatval($expire); $perm = ($perm) ? 'true' : 'false'; $type = SQL_EscapeOrNullInt($type); $hmask = SQL_QuoteOrNullString(WildcardToSQL(SQL_EscapeString($hmask))); $hostmask = SQL_QuoteOrNullString(WildcardToSQL(SQL_EscapeString($hostmask))); if (empty($ipmask)) $ipmask='NULL'; else $ipmask = "'".SQL_EscapeString($ipmask)."'::inet"; SQL_EmptyQuery("INSERT INTO {$GLOBALS['sql_prefix']}ban (ident,auth,uid,perm,expires,chat,type,hmask,ipmask,authid,hostmask) VALUES ({$ident},{$auth},{$uid},{$perm},(now() + INTERVAL '{$expire} minutes'),{$chat},{$type},{$hmask},{$ipmask},{$authid},{$hostmask})", __FILE__.' : '.__LINE__.' : '.__FUNCTION__); } function FindIgnore($ident, $chat=0) { if (empty($chat)) $chat = $GLOBALS['id']+0; if (empty($ident)) return false; foreach($_SESSION['chats'][$chat]['ignore'] as $ign) { if ($ign['ident'] == $ident) return true; } return false; } function RemoveIgnoreBan($ident='', $chat=0, $type=1) { $ident = SQL_EscapeString($ident); $chat = SQL_EscapeString($chat)+0; $type = SQL_EscapeString($type)+0; if ($type & $GLOBALS['BAN_TYPES']['ignore']) { foreach($_SESSION['chats'][$chat]['ignore'] as $key => $ign) { if ($ign['ident'] == $ident) { unset($_SESSION['chats'][$chat]['ignore'][$key]); } } sort($_SESSION['chats'][$chat]['ignore']); } SQL_EmptyQuery("DELETE FROM {$GLOBALS['sql_prefix']}ban WHERE ident='{$ident}' AND chat={$chat} AND (type & {$type} != 0)", __FILE__.' : '.__LINE__.' : '.__FUNCTION__); } function RemoveIgnoreBanId($id=0, $chat=0) { $id = SQL_EscapeString($id)+0; $chat = SQL_EscapeString($chat)+0; SQL_EmptyQuery("DELETE FROM {$GLOBALS['sql_prefix']}ban WHERE chat={$chat} AND id={$id}", __FILE__.' : '.__LINE__.' : '.__FUNCTION__); } function FetchIgnores($userid=0, $chatid=0, $sessid='') { if (empty($chatid)) $chatid = $GLOBALS['id']; $chatid = SQL_EscapeString($chatid)+0; if (empty($userid)) $userid = $_SESSION['chats'][$chatid]['id'] ? $_SESSION['chats'][$chatid]['id'] : $_SESSION['chats'][0]['id']; $userid = SQL_EscapeString($userid)+0; if (empty($sessid)) $sessid = $_SESSION['session_id']; $sessid = SQL_EscapeString($sessid); $_SESSION['chats'][$chatid]['ignore'] = array(); $rez = SQL_SingleQuery("SELECT EXTRACT(EPOCH FROM expires) as expire,ident,perm,hmask,ipmask,uid FROM {$GLOBALS['sql_prefix']}ban WHERE (chat={$chatid} OR chat=0) AND (auth={$userid} OR authid='{$sessid}') AND (type & {$GLOBALS['BAN_TYPES']['ignore']} != 0)", NULL, __FILE__.' : '.__LINE__.' : '.__FUNCTION__); $num = SQL_NumRows($rez); for($i=0;$i<$num;$i++) { $row = SQL_FetchAssoc($rez, $i); $ignore = array(); foreach($row as $key => $val) $ignore[$key] = $val; if ($row['perm'] == 't') { $ignore['perm'] = true; $ignore['expire'] = 2147400000; } else { $ignore['perm'] = false; } $_SESSION['chats'][$chatid]['ignore'][] = $ignore; } SQL_FreeResult($rez); sort($_SESSION['chats'][$chatid]['ignore']); SQL_EmptyQuery("UPDATE {$GLOBALS['sql_prefix']}ban SET authid='{$sessid}' WHERE (chat={$chatid} OR chat=0) AND auth={$userid} AND (type & {$GLOBALS['BAN_TYPES']['ignore']} != 0)", __FILE__.' : '.__LINE__.' : '.__FUNCTION__); } function GetBansForChat($chat=0) { if (empty($chat)) $chat = $GLOBALS['id']; $chat = SQL_EscapeString($chat)+0; $type = $GLOBALS['BAN_TYPES']['ban']+0; $utimezone = PChoose($_SESSION['chats'][0]['timezone'], $_SESSION['chats'][$chat]['timezone'], $GLOBALS['chat']['form_timezone']); $bans = array(); $rez = SQL_SingleQuery("SELECT id,ident,auth,uid,hostmask,hmask,ipmask,to_char(timezone('{$utimezone}', expires), 'FMMon FMDDth, FMHH12:MIam, YYYY') as expires,perm FROM {$GLOBALS['sql_prefix']}ban WHERE (chat={$chat} OR chat=0) AND type={$type}", NULL, __FILE__.' : '.__LINE__.' : '.__FUNCTION__); $num = SQL_NumRows($rez); if ($num > 0) { for($i=0;$i<$num;$i++) { $bans[$i] = SQL_FetchAssoc($rez, $i); $bans[$i]['perm'] = ($bans[$i]['perm']=='t'); } } SQL_FreeResult($rez); return $bans; } function GetEditBansForChat($chat=0, $ids) { if (empty($chat)) $chat = $GLOBALS['id']; $chat = SQL_EscapeString($chat)+0; $type = $GLOBALS['BAN_TYPES']['ban']+0; $bans = array(); if (!empty($ids)) { foreach($ids as $key => $id) { if (!intval($key) || !intval($id)) unset($ids[$key]); } $ids = implode(',', array_flip($ids)); $rez = SQL_SingleQuery("SELECT id,ident,auth,uid,hostmask,hmask,ipmask,EXTRACT(epoch from (expires - now())) as expires,perm FROM {$GLOBALS['sql_prefix']}ban WHERE (chat={$chat} OR chat=0) AND type={$type} AND id IN ({$ids}) ORDER BY id ASC", NULL, __FILE__.' : '.__LINE__.' : '.__FUNCTION__); $num = SQL_NumRows($rez); if ($num > 0) { for($i=0;$i<$num;$i++) { $bans[$i] = SQL_FetchAssoc($rez, $i); $bans[$i]['perm'] = ($bans[$i]['perm']=='t'); } } SQL_FreeResult($rez); } return $bans; } function EditIgnoreBan($id=0, $ident='', $uid=0, $chat=0, $auth=0, $expire=0, $perm=false, $type=1, $hmask='', $ipmask='', $authid='', $hostmask='') { if ($type & $GLOBALS['BAN_TYPES']['all'] == 0) die('
Horrible Crash! Type is not valid!
'); $id = intval($id); if (empty($id)) die('
You tried updating a bad ID, mister!
'); if (empty($authid)) $authid = $_SESSION['session_id']; $authid = SQL_EscapeOrNullString($authid); $ident = SQL_EscapeOrNullString($ident); $uid = SQL_EscapeOrNullInt($uid); $chat = SQL_EscapeOrNullInt($chat); $auth = SQL_EscapeOrNullInt($auth); $expire = floatval($expire)*60; $perm = ($perm) ? 'true' : 'false'; $type = SQL_EscapeOrNullInt($type); $hmask = SQL_QuoteOrNullString(WildcardToSQL(SQL_EscapeString($hmask))); $hostmask = SQL_QuoteOrNullString(WildcardToSQL(SQL_EscapeString($hostmask))); if (empty($ipmask)) $ipmask='NULL'; else $ipmask = "'".SQL_EscapeString($ipmask)."'::inet"; SQL_EmptyQuery("UPDATE {$GLOBALS['sql_prefix']}ban SET ident={$ident},auth={$auth},uid={$uid},perm={$perm},expires=(now() + INTERVAL '{$expire} minutes'),type={$type},hmask={$hmask},ipmask={$ipmask},authid={$authid},hostmask={$hostmask} WHERE chat={$chat} AND id={$id}", __FILE__.' : '.__LINE__.' : '.__FUNCTION__); } ?>