Pārlūkot izejas kodu

add script for oxidizer
fix illegal password save in edit devcie form

Roman Dmitriev 2 gadi atpakaļ
vecāks
revīzija
f4f533b444

+ 7 - 6
docs/Readme.en.md

@@ -2,12 +2,13 @@ Installation
 
 
 1. Install the packages
 1. Install the packages
 
 
-apt install apache2 git fping perl mariadb-php server php-mysql php-bcmath php-intl\
-php-mbstring php-date php-mail php-snmp\
-libnet-patricia-perl libnetaddr-ip-perl libconfig-tiny-perl libnet-dns-perl libdatetime-perl\
-libnet-mask networks-perl libtext-iconv-perl libnet-snmp-perl libnet-telnet-perl libdbi-perl \
-libdbd-mysql-perl libparallel-forkmanager-perl libproc-daemon-perl libdatetime-format-dateparse-perl\
-libnetwork-ipv4addr-perl libnet-openssh-perl libfile-tail-perl php-fpm pdo-mysql libapache2-mod-fcgid
+apt install apache2 git fping perl mariadb-server php php-mysql php-bcmath php-intl \
+php-mbstring php-date php-mail php-snmp \
+libnet-patricia-perl libnetaddr-ip-perl libconfig-tiny-perl libnet-dns-perl libdatetime-perl \
+libnet-netmask-perl libtext-iconv-perl libnet-snmp-perl libnet-telnet-perl libdbi-perl \
+libdbd-mysql-perl libparallel-forkmanager-perl libproc-daemon-perl libdatetime-format-dateparse-perl \
+libnetwork-ipv4addr-perl libnet-openssh-perl libfile-tail-perl php-fpm pdo-mysql libapache2-mod-fcgid \
+libcrypt-cbc-perl
 
 
 2. Download the source code and spread it in catalogs:
 2. Download the source code and spread it in catalogs:
 
 

+ 2 - 1
docs/Readme.ru.md

@@ -7,7 +7,8 @@ php-mbstring php-date php-mail php-snmp \
 libnet-patricia-perl libnetaddr-ip-perl libconfig-tiny-perl libnet-dns-perl libdatetime-perl \
 libnet-patricia-perl libnetaddr-ip-perl libconfig-tiny-perl libnet-dns-perl libdatetime-perl \
 libnet-netmask-perl libtext-iconv-perl libnet-snmp-perl libnet-telnet-perl libdbi-perl \
 libnet-netmask-perl libtext-iconv-perl libnet-snmp-perl libnet-telnet-perl libdbi-perl \
 libdbd-mysql-perl libparallel-forkmanager-perl libproc-daemon-perl libdatetime-format-dateparse-perl \
 libdbd-mysql-perl libparallel-forkmanager-perl libproc-daemon-perl libdatetime-format-dateparse-perl \
-libnetwork-ipv4addr-perl libnet-openssh-perl libfile-tail-perl php-fpm pdo-mysql libapache2-mod-fcgid
+libnetwork-ipv4addr-perl libnet-openssh-perl libfile-tail-perl php-fpm pdo-mysql libapache2-mod-fcgid \
+libcrypt-cbc-perl
 
 
 2. Качаем исходники и раскидываем по каталогам:
 2. Качаем исходники и раскидываем по каталогам:
 
 

+ 47 - 0
docs/addons/print_devices_oxi.pl

@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+
+#
+# Copyright (C) Roman Dmitiriev, rnd@rajven.ru
+#
+
+use utf8;
+use FindBin '$Bin';
+use lib "$Bin/";
+use strict;
+use DBI;
+no if $] >= 5.018, warnings =>  "experimental::smartmatch";
+use Data::Dumper;
+use Socket;
+use Rstat::config;
+use Rstat::main;
+use Rstat::mysql;
+
+my @router_list = get_records_sql($dbh,"SELECT * FROM devices WHERE device_type<=2" );
+
+foreach my $device (@router_list) {
+next if (!$device->{password} or !$device->{login});
+$device = netdev_set_auth($device);
+my $oxi_model = 'dcnos';
+my $vendor = get_record_sql($dbh,"SELECT * FROM vendors WHERE id=".$device->{vendor_id});
+my $model = get_record_sql($dbh,"SELECT * FROM `device_models` WHERE id=".$device->{device_model_id});
+my $building = get_record_sql($dbh,"SELECT * FROM building WHERE id=".$device->{building_id});
+if ($vendor->{name} =~/zyxel/i) { $oxi_model = 'zynoscli'; }
+if ($vendor->{name} =~/snr/i) { $oxi_model = 'dcnos'; }
+if ($vendor->{name} =~/huawei/i) { $oxi_model = 'vrp'; }
+if ($vendor->{name} =~/eltex/i) { $oxi_model = 'eltex'; }
+if ($vendor->{name} =~/raisecom/i) { $oxi_model = 'raisecom'; }
+if ($vendor->{name} =~/mikrotik/i) { $oxi_model = 'routeros'; }
+if ($vendor->{name} =~/d[\-*]link/i) { $oxi_model = 'dlink'; }
+if ($vendor->{name} =~/tp[\-*]link/i) { $oxi_model = 'tplink'; }
+if ($vendor->{name} =~/hp/i) { $oxi_model = 'comware'; }
+if ($vendor->{name} =~/Allied Telesis/i) { $oxi_model = 'awplus'; }
+if ($oxi_model =~/awplus/ and $model->{model_name}=~/AT-8000/i) { $oxi_model = 'powerconnect'; }
+my $proto = 'telnet';
+if ($device->{protocol} eq '0') { $proto = 'ssh'; }
+my $location = $building->{name};
+print $device->{device_name}.":".$device->{ip}.":".$device->{login}.":".$device->{password}.":".$oxi_model.":".$device->{control_port}.":".$proto.":".$location."\n";
+}
+
+$dbh->disconnect;
+
+exit 0;

+ 5 - 1
html/admin/devices/editdevice.php

@@ -76,7 +76,11 @@ if (isset($_POST["editdevice"]) and isset($id)) {
     if (isset($_POST["f_building_id"])) { $new['building_id'] = $_POST["f_building_id"] * 1; }
     if (isset($_POST["f_building_id"])) { $new['building_id'] = $_POST["f_building_id"] * 1; }
     //access
     //access
     if (isset($_POST["f_login"])) { $new['login'] = $_POST["f_login"]; }
     if (isset($_POST["f_login"])) { $new['login'] = $_POST["f_login"]; }
-    if (isset($_POST["f_password"])) { $new['password'] = crypt_string($_POST["f_password"]); }
+    if (!empty($_POST["f_password"])) {
+        if (!preg_match('/**/', $_POST["f_password"])) { 
+            $new['password'] = crypt_string($_POST["f_password"]);  
+            }
+        }
     if (isset($_POST["f_protocol"])) { $new['protocol'] = $_POST["f_protocol"]*1; }
     if (isset($_POST["f_protocol"])) { $new['protocol'] = $_POST["f_protocol"]*1; }
     if (isset($_POST["f_control_port"])) { $new['control_port'] = $_POST["f_control_port"]*1; }
     if (isset($_POST["f_control_port"])) { $new['control_port'] = $_POST["f_control_port"]*1; }
     //discovery
     //discovery

+ 1 - 1
version

@@ -1 +1 @@
-2.4.11
+2.4.12