Pārlūkot izejas kodu

added whitelist

Avetisyan Karen 7 gadi atpakaļ
vecāks
revīzija
d8da4cce2e

BIN
web_interface/dist/wui/main.js


BIN
web_interface/dist/wui/settings.html


+ 5 - 0
web_interface/smartUPS.sublime-project

@@ -17,6 +17,11 @@
       "name": "CGI-6706",
       "file_exclude_patterns": ["*.png", "*.ico", "*.html", "*.js", "*.css"]
     },
+    {
+      "path": "src/wui-8",
+      "name": "CGI-6708",
+      "file_exclude_patterns": ["*.png", "*.ico", "*.html", "*.js", "*.css"]
+    },
     {
       "path": "src",
       "name": "SRC",

+ 38 - 12
web_interface/src/wui-8/main.js

@@ -92,19 +92,24 @@ function fadeIn(el, display){
 
 function formValidation(){
   var read_community,write_community,managerIP,managerIP2,managerIP3,managerIP4,managerIP5,
-    ipaddr, gw, mask, tn_port/*, ntpservip*/;
-
-  read_community  = $('read_community'),
-  write_community = $('write_community'),
-  managerIP       = $('managerIP'),
-  managerIP2      = $('managerIP2'),
-  managerIP3      = $('managerIP3'),
-  managerIP4      = $('managerIP4'),
-  managerIP5      = $('managerIP5'),
-  ipaddr          = $('ipaddr'),
-  gw              = $('gw'),
-  mask            = $('mask'),
+    ipaddr, gw, mask, tn_port, wtl_ip1, wtl_ip2, wtl_ip3, wtl_ip4, wtl_ip5/*, ntpservip*/;
+
+  read_community  = $('read_community');
+  write_community = $('write_community');
+  managerIP       = $('managerIP');
+  managerIP2      = $('managerIP2');
+  managerIP3      = $('managerIP3');
+  managerIP4      = $('managerIP4');
+  managerIP5      = $('managerIP5');
+  ipaddr          = $('ipaddr');
+  gw              = $('gw');
+  mask            = $('mask');
   tn_port         = $('tn_port');
+  wtl_ip1         = $('wtl_ip1');
+  wtl_ip2         = $('wtl_ip2');
+  wtl_ip3         = $('wtl_ip3');
+  wtl_ip4         = $('wtl_ip4');
+  wtl_ip5         = $('wtl_ip5');
   // ntpservip          = $('ntpservip');
 
   var flag = true;
@@ -124,6 +129,12 @@ function formValidation(){
   if(!ValidateIPaddress(managerIP4, ' Сервер SNMP 4')) flag = false;
   if(!ValidateIPaddress(managerIP5, ' Сервер SNMP 5')) flag = false;
 
+  if(!ValidateCIDRIPaddress(wtl_ip1, ' Маска/IP-адреса 1 белого списка')) flag = false;
+  if(!ValidateCIDRIPaddress(wtl_ip2, ' Маска/IP-адреса 2 белого списка')) flag = false;
+  if(!ValidateCIDRIPaddress(wtl_ip3, ' Маска/IP-адреса 3 белого списка')) flag = false;
+  if(!ValidateCIDRIPaddress(wtl_ip4, ' Маска/IP-адреса 4 белого списка')) flag = false;
+  if(!ValidateCIDRIPaddress(wtl_ip5, ' Маска/IP-адреса 5 белого списка')) flag = false;
+
   return flag;
 }
 
@@ -136,6 +147,15 @@ function ValidateIPaddress(ipaddress, z) {
   $('validation-box').appendChild(warn);
   return false;
 }
+function ValidateCIDRIPaddress(ipaddress, z) {
+  var warn = document.createElement('li');
+  warn.innerHTML = 'Неправильно задан' + z + '!';
+  if (/^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$/.test(ipaddress.value) || !ipaddress.value) {
+    return true;
+  }
+  $('validation-box').appendChild(warn);
+  return false;
+}
 
 function ValidateNumber(n, z) {
   var warn = document.createElement('li');
@@ -796,6 +816,12 @@ function settingsGET(){
     $('gw').value       = data.gw;
     $('mask').value     = data.mask;
     $('dhcp').checked   = data.dhcp;
+    // Whitelist
+    $('wtl_ip1').value = data.wtl_ip1;
+    $('wtl_ip2').value = data.wtl_ip2;
+    $('wtl_ip3').value = data.wtl_ip3;
+    $('wtl_ip4').value = data.wtl_ip4;
+    $('wtl_ip5').value = data.wtl_ip5;
 
     $('tn_enabled').checked   = data.tn_enabled;
     $('tn_port').value        = data.tn_port;

+ 5 - 0
web_interface/src/wui-8/settings.cgi

@@ -11,6 +11,11 @@ JSON = {
   "managerIP3":"0.0.0.0",
   "managerIP4":"0.0.0.0",
   "managerIP5":"0.0.0.0",
+  "wtl_ip1":"0.0.0.0",
+  "wtl_ip2":"0.0.0.0",
+  "wtl_ip3":"0.0.0.0",
+  "wtl_ip4":"0.0.0.0",
+  "wtl_ip5":"0.0.0.0",
   "batvoltage_min":42,
   "batvoltage_min_hist":0.25,
   "batcap":7,

+ 32 - 4
web_interface/src/wui-8/settings.html

@@ -50,8 +50,9 @@
 <div>
   <ul class="tabnavs">
     <li><a href="#snmpt" class="activeTab">SNMP</a></li>
-    <li><a href="#inout">Сухие контакты</a></li>
+    <li class="hidden"><a href="#inout">Сухие контакты</a></li>
     <li><a href="#netw">Сетевые параметры</a></li>
+    <li><a href="#whitelist">Белый список</a></li>
     <li><a href="#service">Сервис</a></li>
     <li><a href="#ntpt">Время</a></li>
   </ul>
@@ -93,7 +94,7 @@
     </div>
   </div>
 </div>
-<div id="inout" class="tabpane">
+<div id="inout" class="tabpane hidden">
   <div class="panel-heading">Сухие контакты</div>
   <div class="panel-body section group">
     <div class="col span_1_of_2">
@@ -176,7 +177,7 @@
       <h4 class="col span_2_of_2">Сеть</h4>
       <div class="checkbox col span_2_of_2">
         <label>
-          <input type="checkbox" name="dhcp" id="dhcp" onchange="dhcpState();"> Получить IP-адрес автоматически
+          <input type="checkbox" name="dhcp" id="dhcp" onchange="dhcpState();">&nbsp;Получить IP-адрес автоматически
         </label>
       </div>
       <label for="ipaddr" class="col span_1_of_2">IP-адрес устройства</label>
@@ -196,7 +197,7 @@
       <h4 class="col span_2_of_2">Telnet</h4>
       <div class="checkbox col span_2_of_2">
         <label>
-          <input type="checkbox" name="tn_enabled" id="tn_enabled" onchange="telnetState();"> Включить
+          <input type="checkbox" name="tn_enabled" id="tn_enabled" onchange="telnetState();">&nbsp;Включить
         </label>
       </div>
       <label for="tn_port" class="col span_1_of_2">Порт Telnet</label>
@@ -206,6 +207,33 @@
     </div>
   </div>
 </div>
+<div id="whitelist" class="tabpane">
+  <div class="panel-heading">Белый список IP-адресов</div>
+  <div class="panel-body section group">
+    <div class="col span_1_of_2">
+      <label for="wtl_ip1" class="col span_1_of_2">IP-адрес 1</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="wtl_ip1" name="wtl_ip1" placeholder="0.0.0.0/32">
+      </div>
+      <label for="wtl_ip2" class="col span_1_of_2">IP-адрес 2</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="wtl_ip2" name="wtl_ip2" placeholder="0.0.0.0/32">
+      </div>
+      <label for="wtl_ip3" class="col span_1_of_2">IP-адрес 3</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="wtl_ip3" name="wtl_ip3" placeholder="0.0.0.0/32">
+      </div>
+      <label for="wtl_ip4" class="col span_1_of_2">IP-адрес 4</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="wtl_ip4" name="wtl_ip4" placeholder="0.0.0.0/32">
+      </div>
+      <label for="wtl_ip5" class="col span_1_of_2">IP-адрес 5</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="wtl_ip5" name="wtl_ip5" placeholder="0.0.0.0/32">
+      </div>
+    </div>
+  </div>
+</div>
 <div id="service" class="tabpane">
   <div class="panel-heading">Сервис</div>
   <div class="panel-body section group">