Ver código fonte

bugfix:
- fixed creation of identical logins

Dmitriev Roman 4 anos atrás
pai
commit
dcc8a7eaaf

+ 4 - 0
html/inc/common.php

@@ -1381,6 +1381,10 @@ if ($user_info['dhcp_hostname']) {
     } else {
     $user['fio']=$user_info['ip'];
     }
+
+$login_count = get_record_count($db,"SELECT COUNT(*) FROM User_list WHERE (login LIKE '".$user['login']."(%)') OR (login='".$user['login']."')");
+if (!empty($login_count) and $login_count>0) { $login_count++; $user['login'] = $user['login']."(".$login_count.")"; }
+
 $user['ou_id'] = $user_info['ou_id'];
 $ou_info = get_record_sql($db,"SELECT * FROM OU WHERE id=".$user_info['ou_id']);
 if (!empty($ou_info)) {

+ 5 - 1
scripts/Rstat/mysql.pm

@@ -712,7 +712,7 @@ sub new_user {
 my $db = shift;
 my $user_info = shift;
 my $user;
-if ($user_info->{mac}) { 
+if ($user_info->{mac}) {
     $user->{login}=mac_splitted($user_info->{mac});
     } else {
     $user->{login}=$user_info->{ip};
@@ -722,6 +722,10 @@ if ($user_info->{dhcp_hostname}) {
     } else {
     $user->{fio}=$user_info->{ip};
     }
+
+my $login_count = get_record_count($db,"SELECT COUNT(*) FROM User_list WHERE (login LIKE '".$user->{login}."(%)') OR (login='".$user->{login}."')");
+if ($login_count) { $login_count++; $user->{login} .="(".$login_count.")"; }
+
 $user->{ou_id} = $user_info->{ou_id};
 my $ou_info = get_record_sql($db,"SELECT * FROM OU WHERE id=".$user_info->{'ou_id'});
 if ($ou_info) {

+ 2 - 3
scripts/set_port_descr.pl

@@ -90,7 +90,8 @@ if ($conn->{auth_id}) {
 foreach my $conn_id (keys %conn_info) {
 if (exists $port_info{$conn_info{$conn_id}{port_id}}{count}) {
     $port_info{$conn_info{$conn_id}{port_id}}{count}++;
-    if ($conn_info{$conn_id}{ou_id}~~[7,10,12,28] and $conn_info{$conn_id}{description}) {
+    #OU: Switches, Routers, WiFi AP
+    if ($conn_info{$conn_id}{ou_id}~~[7,10,12] and $conn_info{$conn_id}{description}) {
         $port_info{$conn_info{$conn_id}{port_id}}{description} = $conn_info{$conn_id}{description};
         }
     next;
@@ -125,8 +126,6 @@ my $device = $devices{$device_name};
 #skip unknown vendor
 next if (!$switch_auth{$device->{vendor_id}});
 
-#next if ($device->{ip} ne "192.168.32.11");
-
 my $ip = $device->{ip};
 my $community = $device->{community};
 my $snmp_version = $device->{snmp_version};

+ 2 - 0
scripts/sync_mikrotik.pl

@@ -322,6 +322,8 @@ my %found_users;
 
 foreach my $row (@authlist_ref) {
 if ($connected_users_only) { next if (!$connected_users->match_string($row->{ip})); }
+#skip not office ip's
+next if (!$office_networks->match_string($row->{ip}));
 $found_users{$row->{'id'}}=$row->{ip};
 $users{'group_'.$row->{filter_group_id}}->{$row->{ip}}=1;
 $users{'group_all'}->{$row->{ip}}=1;