Beispiel #1
0
/**
 * Обновляет адреса пользователя в сером списке IP
 * 
 * @param  int $nUserId UID пользователя
 * @param  string $sUserLogin Логин пользователя
 * @param  int $nAdminId UID админа
 * @param  string $sIp список IP адресов
 * @return object xajaxResponse
 */
function setPrimaryIp($nUserId = 0, $sUserLogin = '', $nAdminId = 0, $sIp = '')
{
    session_start();
    $objResponse = new xajaxResponse();
    $objResponse->script('gray_ip.clearEditAll();');
    $sIp = change_q(trim(stripslashes($sIp)), true);
    $aIp = users::CheckSafetyIP($sIp);
    if (!$aIp['error_flag']) {
        $bRes = gray_ip::updatePrimaryIp($nUserId, $sUserLogin, $nAdminId, $aIp['ip_addresses'], $bDel);
        if ($bRes) {
            $objResponse->alert('IP адреса успешно сохранены' . ($bDel ? "\nСтраница будет перезагружена" : ''));
            if ($bDel) {
                $objResponse->script('window.location.reload(true)');
            }
        } else {
            $objResponse->alert('Ошибка сохранения IP адресов');
        }
    } else {
        $objResponse->alert($aIp['alert'][1]);
    }
    return $objResponse;
}
Beispiel #2
0
     }
     break;
 case "safety_update":
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
     $reqv = sbr_meta::getUserReqvs(get_uid(false));
     $ureqv = $reqv[$reqv['form_type']];
     $ip_addresses = change_q(trim(stripslashes($_POST['ip_addresses'])), true);
     $bind_ip = $_POST['bind_ip'];
     if ($bind_ip != 't') {
         $bind_ip = 'f';
     }
     $password = trim(stripslashes($_POST['password']));
     $error_flag = 0;
     $frl = new users();
     // Проверям IP
     $c_ip = $frl->CheckSafetyIP($ip_addresses);
     $ip_addresses = $c_ip['ip_addresses'];
     $alert[1] = $c_ip['alert'][1];
     $error_flag = $c_ip['error_flag'];
     // Проверям правильность пароля
     $current_password = $frl->GetField($uid, $ee, 'passwd');
     if (users::hashPasswd($password) != $current_password) {
         $error_flag = 1;
         $alert[3] = "Вы ввели неправильный пароль";
     }
     $password = '';
     if (!$error_flag) {
         $info_msg = "Изменения внесены";
         $_SESSION['info_msg'] = $info_msg;
         $frl->UpdateSafetyInformation($uid, $ip_addresses, $bind_ip);
         header_location_exit('/users/' . $_SESSION['login'] . '/setup/safety/');
Beispiel #3
0
 /**
  * Изменение IP адрессов разрешенных для логина пользователя
  *
  * @param    integer $uid    ID пользователя
  * @param    string  $ip     IP адресса
  *
  * @return   string  сообщение об ошибке
  */
 function ChangeSafetyIP($uid, $ip)
 {
     global $DB;
     $res = '';
     $ip_addresses = preg_replace("/,[ ]{0,}/", "\n", $ip);
     $c_ip = users::CheckSafetyIP($ip_addresses);
     $ip_addresses = $c_ip['ip_addresses'];
     $res = $c_ip['alert'][1];
     if (!$res) {
         $sql = "DELETE FROM users_safety WHERE uid=?i";
         $DB->query($sql, $uid);
         if (!empty($ip_addresses)) {
             while (list($k, $v) = each($ip_addresses)) {
                 if (strstr($v, '-')) {
                     list($b_ip, $e_ip) = preg_split("/\\-/", $v);
                     $b_ip = ip2long($b_ip);
                     $e_ip = ip2long($e_ip);
                 } else {
                     if (strstr($v, '/')) {
                         list($b_ip, $e_ip) = preg_split("/\\//", $v);
                         $b_ip = ip2long($b_ip);
                         $e_ip = $b_ip + pow(2, 32 - $e_ip) - 1;
                     } else {
                         $b_ip = ip2long($v);
                         $e_ip = ip2long($v);
                     }
                 }
                 $sql = "INSERT INTO users_safety(uid,b_ip,e_ip) VALUES(?i,?i,?i);";
                 if (!$DB->query($sql, $uid, $b_ip, $e_ip)) {
                     $ret = 0;
                 }
             }
         }
     }
     return $res;
 }