=1 and !in_array($id,$mac_exists['users_id'])) {
$dup_sql = "SELECT * FROM User_list WHERE id=".$mac_exists['users_id']['0'];
$dup_info = get_record_sql($db_link, $dup_sql);
$msg_error="Mac already exists at another user in this subnet! Skip creating $fip [$fmac].
Old user id: ".$dup_info['id']." login: ".$dup_info['login'];
$_SESSION[$page_url]['msg'] = $msg_error;
LOG_ERROR($db_link, $msg_error);
header("Location: " . $_SERVER["REQUEST_URI"]);
exit;
}
//disable dhcp for secondary ip
$f_dhcp = 1;
if (in_array($id,$mac_exists['users_id'])) { $f_dhcp = 0; }
//search ip
$dup_ip_record = get_record_sql($db_link, "SELECT * FROM User_auth WHERE `ip_int`=$ip_aton AND user_id<>".$id." AND deleted=0");
if (!empty($dup_ip_record)) {
$dup_info = get_record_sql($db_link, "SELECT * FROM User_list WHERE id=".$dup_ip_record['user_id']);
$msg_error = "$fip already exists. Skip creating $fip [$fmac].
Old user id: ".$dup_info['id']." login: ".$dup_info['login'];
$_SESSION[$page_url]['msg'] = $msg_error;
LOG_ERROR($db_link, $msg_error);
header("Location: " . $_SERVER["REQUEST_URI"]);
exit;
}
$fid = new_auth($db_link, $fip, $fmac, $id);
if (!empty($fid)) {
$new['dhcp']=$f_dhcp;
update_record($db_link,"User_auth","id=".$fid,$new);
LOG_WARNING($db_link,"Создан новый адрес доступа: ip => $fip, mac => $fmac");
header("Location: /admin/users/editauth.php?id=".$fid);
}
header("Location: " . $_SERVER["REQUEST_URI"]);
} else {
$msg_error = "$msg_ip_error xxx.xxx.xxx.xxx";
$_SESSION[$page_url]['msg'] = $msg_error;
}
}
header("Location: " . $_SERVER["REQUEST_URI"]);
}
if (isset($_POST["removeauth"])) {
$auth_id = $_POST["f_auth_id"];
foreach ($auth_id as $key => $val) {
if ($val) {
delete_record($db_link, 'connections', "auth_id=" . $val);
delete_record($db_link, 'User_auth_alias', "auth_id=" . $val);
$auth["deleted"] = 1;
$changes = get_diff_rec($db_link,"User_auth","id='$val'", '', 0);
if (!empty($changes)) { LOG_WARNING($db_link,"Удалён адрес доступа: \r\n $changes"); }
update_record($db_link, "User_auth", "id=" . $val, $auth);
delete_record($db_link, "connections", "auth_id=" . $val);
}
}
header("Location: " . $_SERVER["REQUEST_URI"]);
}
if (isset($_POST["ApplyForAll"])) {
$auth_id = $_POST["f_auth_id"];
$a_enabled = $_POST["a_enabled"] * 1;
$a_dhcp = $_POST["a_dhcp"] * 1;
$a_day = $_POST["a_day_q"] * 1;
$a_month = $_POST["a_month_q"] * 1;
$a_queue = $_POST["a_queue_id"] * 1;
$a_group = $_POST["a_group_id"] * 1;
foreach ($auth_id as $key => $val) {
if ($val) {
unset($new);
if ($default_user_id == $id or $hotspot_user_id == $id) {
$new["dhcp"] = 0;
$new["enabled"] = 0;
$new["day_quota"] = 0;
$new["month_quota"] = 0;
$new["queue_id"] = 0;
$new["filter_group_id"] = 0;
} else {
$new["dhcp"] = $a_dhcp;
$new["enabled"] = $a_enabled;
$new["day_quota"] = $a_day;
$new["month_quota"] = $a_month;
$new["queue_id"] = $a_queue;
$new["filter_group_id"] = $a_group;
}
$changes = get_diff_rec($db_link,"User_auth","id='$val'", $new, 0);
if (!empty($changes)) { LOG_WARNING($db_link,"Изменён адрес доступа id: $val. Применено: $changes"); }
update_record($db_link, "User_auth", "id='" . $val . "'", $new);
}
}
header("Location: " . $_SERVER["REQUEST_URI"]);
}
if (isset($_POST["moveauth"]) and isset($_POST["new_parent"])) {
$new_user_id = $_POST["new_parent"]*1;
$auth_id = $_POST["f_auth_id"];
if ($new_user_id <> $id) {
$user_rec = get_record($db_link, 'User_list', "id=".$new_user_id);
foreach ($auth_id as $key => $val) {
if ($val) {
$new["filter_group_id"]=$user_rec["filter_group_id"];
$new["queue_id"] = $user_rec["queue_id"];
$new["enabled"] = $user_rec["enabled"];
$new["user_id"] = $new_user_id;
$changes = get_diff_rec($db_link,"User_auth","id='$val'", $new, 0);
if (!empty($changes)) { LOG_WARNING($db_link,"Адрес доступа перемещён к другому пользователю id: $val (".$user_rec["login"]."). Применено: $changes"); }
update_record($db_link, "User_auth", "id='" . $val . "'", $new);
}
}
}
header("Location: " . $_SERVER["REQUEST_URI"]);
}
if (isset($_POST["new_user"])) {
$auth_id = $_POST["f_auth_id"];
$save_traf = get_option($db_link, 23) * 1;
foreach ($auth_id as $key => $val) {
if ($val) {
$flist = mysqli_query($db_link, "SELECT ip, comments, dns_name, dhcp_hostname from User_auth WHERE id=$val");
list ($f_auth_ip, $f_auth_comments, $f_dns_name, $f_dhcp_name) = mysqli_fetch_array($flist);
$ou_id = $_POST["f_new_ou"] * 1;
if (!isset($ou_id)) { $ou_id = 0; }
$login = $f_auth_ip;
if (isset($f_auth_comments) and strlen($f_auth_comments) > 0) { $login = $f_auth_comments; }
if (isset($f_dhcp_name) and strlen($f_dhcp_name) > 0) { $login = $f_dhcp_name; }
if (isset($f_dns_name) and strlen($f_dns_name) > 0) { $login = $f_dns_name; }
list ($l_id) = mysqli_fetch_array(mysqli_query($db_link, "Select id from User_list where LCase(login)=LCase('$login') and deleted=0"));
if (isset($l_id) and $l_id > 0) {
// move auth
$auth["user_id"] = $l_id;
$auth["save_traf"] = $save_traf;
update_record($db_link, "User_auth", "id='" . $val . "'", $auth);
apply_auth_rule($db_link,$val,$l_id);
$changes = get_diff_rec($db_link,"User_auth","id='$val'", $new, 0);
if (!empty($changes)) { LOG_WARNING($db_link,"Изменён адрес доступа id: $val. Применено: $changes"); }
} else {
$new["login"] = $login;
$new["ou_id"] = $ou_id;
$l_id=insert_record($db_link, "User_list", $new);
$auth["user_id"] = $l_id;
$auth["save_traf"] = $save_traf;
update_record($db_link, "User_auth", "id='" . $val . "'", $auth);
$changes = get_diff_rec($db_link,"User_auth","id='$val'", '', 0);
LOG_WARNING($db_link,"Создан новый пользователь из адреса доступа: login => $login. Адрес доступа перемещён к созданному пользователю: $changes");
}
}
}
header("Location: " . $_SERVER["REQUEST_URI"]);
}
unset($_POST);
$sSQL = "SELECT * FROM User_list WHERE id=$id";
$user_info = get_record_sql($db_link, $sSQL);
require_once ($_SERVER["DOCUMENT_ROOT"]."/inc/header.php");
?>