66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
<?php
|
||
$setOnlineCall = 1;
|
||
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/engine/functions.php");
|
||
if($_SESSION['id'])
|
||
{
|
||
setOnline();
|
||
|
||
$sql = "SELECT last_ip_check FROM online WHERE id_user = $_SESSION[id]";
|
||
|
||
$rez = mysql_query($sql);
|
||
|
||
if (mysql_num_rows($rez)) {
|
||
|
||
$online = mysql_fetch_assoc($rez);
|
||
|
||
$date_time = strtotime($online['last_ip_check']);
|
||
|
||
$date_time_with_hour = $date_time + 3600;
|
||
|
||
if ($date_time_with_hour < time()) {
|
||
|
||
$agency_id = User::getUserAgencyID($_SESSION['id']);
|
||
|
||
$sql_enable = "SELECT * FROM auth_enable_ip WHERE id_agency = {$agency_id}";
|
||
|
||
$q_enable = mysql_query($sql_enable);
|
||
|
||
//если есть строки в таблице, значит есть ограничение по IP
|
||
if (mysql_num_rows($q_enable) > 0) {
|
||
$ipEnabled = false;
|
||
|
||
while ($ip = mysql_fetch_assoc($q_enable)) {
|
||
if ($ip['ip'] == $_SERVER['REMOTE_ADDR']) {
|
||
$ipEnabled = true;
|
||
}
|
||
}
|
||
|
||
if (!$ipEnabled) {
|
||
//проверяем разрешение на фход с любого IP
|
||
$sql_select_permissions = "SELECT allow_any_ip FROM user_permissions WHERE user_id=$_SESSION[id]";
|
||
$permissions_result = mysql_query($sql_select_permissions);
|
||
|
||
if (mysql_num_rows($permissions_result) > 0) {
|
||
$r_u = mysql_fetch_assoc($permissions_result);
|
||
$allowAnyIp = $r_u["allow_any_ip"];
|
||
if ($allowAnyIp) {
|
||
$ipEnabled = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!$ipEnabled) {
|
||
$user = new User;
|
||
$user->quit("" , false);
|
||
exit;
|
||
}
|
||
}
|
||
|
||
$sql = "UPDATE online SET last_ip_check = NOW() WHERE id_user = $_SESSION[id]";
|
||
mysql_query($sql);
|
||
}
|
||
}
|
||
}
|
||
?>
|