1
0

user_apply.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <?php
  2. require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/auth.php");
  3. require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/languages/" . HTML_LANG . ".php");
  4. if (!defined("CONFIG")) die("Not defined");
  5. if (isset($_POST["ApplyForAll"])) {
  6. $auth_id = $_POST["fid"];
  7. if (empty($_POST["a_enabled"])) {
  8. $_POST["a_enabled"] = 0;
  9. }
  10. if (empty($_POST["a_dhcp"])) {
  11. $_POST["a_dhcp"] = 0;
  12. }
  13. if (empty($_POST["a_queue_id"])) {
  14. $_POST["a_queue_id"] = 0;
  15. }
  16. if (empty($_POST["a_group_id"])) {
  17. $_POST["a_group_id"] = 0;
  18. }
  19. if (empty($_POST["a_traf"])) {
  20. $_POST["a_traf"] = 0;
  21. }
  22. if (empty($_POST["a_day_q"])) {
  23. $_POST["a_day_q"] = 0;
  24. }
  25. if (empty($_POST["a_month_q"])) {
  26. $_POST["a_month_q"] = 0;
  27. }
  28. if (empty($_POST["a_new_ou"])) {
  29. $_POST["a_new_ou"] = 0;
  30. }
  31. if (empty($_POST["a_bind_mac"])) {
  32. $_POST["a_bind_mac"] = 0;
  33. }
  34. if (empty($_POST["a_bind_ip"])) {
  35. $_POST["a_bind_ip"] = 0;
  36. }
  37. if (empty($_POST["a_create_netdev"])) {
  38. $_POST["a_create_netdev"] = 0;
  39. }
  40. $a_enabled = $_POST["a_enabled"] * 1;
  41. $a_dhcp = $_POST["a_dhcp"] * 1;
  42. $a_dhcp_acl = $_POST["a_dhcp_acl"];
  43. $a_queue = $_POST["a_queue_id"] * 1;
  44. $a_group = $_POST["a_group_id"] * 1;
  45. $a_traf = $_POST["a_traf"] * 1;
  46. $a_day = $_POST["a_day_q"] * 1;
  47. $a_month = $_POST["a_month_q"] * 1;
  48. $a_ou_id = $_POST["a_new_ou"] * 1;
  49. $a_bind_mac = $_POST["a_bind_mac"] * 1;
  50. $a_bind_ip = $_POST["a_bind_ip"] * 1;
  51. $a_create_netdev = $_POST["a_create_netdev"] * 1;
  52. $msg = "Massive User change!";
  53. LOG_WARNING($db_link, $msg);
  54. $all_ok = 1;
  55. foreach ($auth_id as $key => $val) {
  56. if ($val) {
  57. unset($auth);
  58. unset($user);
  59. if (isset($_POST["e_enabled"])) {
  60. $auth['enabled'] = $a_enabled;
  61. $user['enabled'] = $a_enabled;
  62. }
  63. if (isset($_POST["e_group_id"])) {
  64. $auth['filter_group_id'] = $a_group;
  65. }
  66. if (isset($_POST["e_queue_id"])) {
  67. $auth['queue_id'] = $a_queue;
  68. }
  69. if (isset($_POST["e_dhcp"])) {
  70. $auth['dhcp'] = $a_dhcp;
  71. }
  72. if (isset($_POST["e_dhcp_acl"])) {
  73. $auth['dhcp_acl'] = $a_dhcp_acl;
  74. }
  75. if (isset($_POST["e_traf"])) {
  76. $auth['save_traf'] = $a_traf;
  77. }
  78. if (isset($_POST["e_day_q"])) {
  79. $user['day_quota'] = $a_day;
  80. }
  81. if (isset($_POST["e_month_q"])) {
  82. $user['month_quota'] = $a_month;
  83. }
  84. if (isset($_POST["e_new_ou"])) {
  85. $user['ou_id'] = $a_ou_id;
  86. $auth['ou_id'] = $a_ou_id;
  87. }
  88. $login = get_record($db_link, "User_list", "id='$val'");
  89. $msg .= " For all ip user id: " . $val . " login: " . $login['login'] . " set: ";
  90. $msg .= get_diff_rec($db_link, "User_list", "id='$val'", $user, 1);
  91. if (!empty($user)) {
  92. $ret = update_record($db_link, "User_list", "id='" . $val . "'", $user);
  93. if (!$ret) { $all_ok = 0; }
  94. }
  95. $auth_list = get_records_sql($db_link, "SELECT id, mac, ip FROM User_auth WHERE deleted=0 AND user_id=" . $val);
  96. $b_mac = '';
  97. $b_ip = '';
  98. if (!empty($auth_list)) {
  99. foreach ($auth_list as $row) {
  100. if (empty($row)) { continue; }
  101. if (empty($b_mac) and !empty($row["mac"])) { $b_mac = $row["mac"]; }
  102. if (empty($b_ip) and !empty($row["ip"])) { $b_ip = $row["ip"]; }
  103. if (!empty($auth)) {
  104. $ret = update_record($db_link, "User_auth", "id='" . $row["id"] . "'", $auth);
  105. if (!$ret) { $all_ok = 0; }
  106. }
  107. }
  108. }
  109. //bind mac rule
  110. if (isset($_POST["e_bind_mac"])) {
  111. if ($a_bind_mac) {
  112. if (!empty($b_mac)) {
  113. $auth_rules_user = get_record_sql($db_link, "SELECT * FROM auth_rules WHERE user_id=" . $val . " AND type=2");
  114. $auth_rules_mac = get_record_sql($db_link, "SELECT * FROM auth_rules WHERE rule='" . $b_mac . "' AND type=2");
  115. if (empty($auth_rules_user) and empty($auth_rules_mac)) {
  116. $new['user_id'] = $val;
  117. $new['type'] = 2;
  118. $new['rule'] = $b_mac;
  119. insert_record($db_link, "auth_rules", $new);
  120. LOG_INFO($db_link, "Created auto rule for user_id: " . $val . " and mac " . $b_mac);
  121. } else {
  122. LOG_INFO($db_link, "Auto rule for user_id: " . $val . " and mac " . $mac . " already exists");
  123. }
  124. }
  125. } else {
  126. run_sql($db_link, "DELETE FROM auth_rules WHERE user_id=" . $val . " AND type=2");
  127. LOG_INFO($db_link, "Remove auto rule for user_id: " . $val . " and mac " . $b_mac);
  128. }
  129. }
  130. //bind ip rule
  131. if (isset($_POST["e_bind_ip"])) {
  132. if ($a_bind_ip) {
  133. if (!empty($b_ip)) {
  134. $auth_rules_user = get_record_sql($db_link, "SELECT * FROM auth_rules WHERE user_id=" . $val . " AND type=1");
  135. $auth_rules_ip = get_record_sql($db_link, "SELECT * FROM auth_rules WHERE rule='" . $b_ip . "' AND type=1");
  136. if (empty($auth_rules_user) and empty($auth_rules_ip)) {
  137. $new['user_id'] = $val;
  138. $new['type'] = 1;
  139. $new['rule'] = $b_ip;
  140. insert_record($db_link, "auth_rules", $new);
  141. LOG_INFO($db_link, "Created auto rule for user_id: " . $val . " and ip " . $b_ip);
  142. } else {
  143. LOG_INFO($db_link, "Auto rule for user_id: " . $val . " and ip " . $ip . " already exists");
  144. }
  145. }
  146. } else {
  147. run_sql($db_link, "DELETE FROM auth_rules WHERE user_id=" . $val . " AND type=1");
  148. LOG_INFO($db_link, "Remove auto rule for user_id: " . $val . " and ip " . $b_ip);
  149. }
  150. }
  151. //create network devices
  152. if (isset($_POST["e_create_netdev"])) {
  153. if ($a_create_netdev) {
  154. if (!empty($b_ip)) {
  155. $device = get_record_sql($db_link,"SELECT * FROM devices WHERE user_id=".$val);
  156. $auth = get_record_sql($db_link,"SELECT * FROM User_auth WHERE user_id=".$val." ORDER BY last_found DESC");
  157. if (empty($device) and !empty($auth)) {
  158. $new['user_id']=$val;
  159. $new['device_name'] = $login['login'];
  160. $new['device_type'] = 5;
  161. $new['ip']=$auth['ip'];
  162. $new['community'] = get_const('snmp_default_community');
  163. $new['snmp_version'] = get_const('snmp_default_version');
  164. $new['login'] = get_option($db_link,28);
  165. $new['password'] = get_option($db_link,29);
  166. //default ssh
  167. $new['protocol'] = 0;
  168. $new['control_port'] = get_option($db_link,30);
  169. $new_id=insert_record($db_link, "devices", $new);
  170. }
  171. }
  172. }
  173. }
  174. }
  175. }
  176. if ($all_ok) {
  177. print "Success!";
  178. } else {
  179. print "Fail!";
  180. }
  181. }