Browse Source

add radius login for 6711

Avetisyan Karen 3 years ago
parent
commit
bb49d7acf6

BIN
web_interface/dist/wui-11/main.js


BIN
web_interface/dist/wui-11/rslogin.html


BIN
web_interface/dist/wui-11/settings.html


+ 43 - 1
web_interface/src/wui-11/main.js

@@ -96,7 +96,7 @@ function fadeIn(el, display){
 
 
 function formValidation(){
 function formValidation(){
   $('validation-box').innerHTML = '';
   $('validation-box').innerHTML = '';
-  var read_community,write_community,managerIP,managerIP2,managerIP3,managerIP4,managerIP5,
+  var read_community,write_community,managerIP,managerIP2,managerIP3,managerIP4,managerIP5, rs_server, rs_port, rs_key,
     ipaddr, gw, mask, tn_port, syslog_port, syslog_server, wtl_ip1, wtl_ip2, wtl_ip3, wtl_ip4, wtl_ip5, ups_cell_min, ups_cell_max/*, ntpservip*/;
     ipaddr, gw, mask, tn_port, syslog_port, syslog_server, wtl_ip1, wtl_ip2, wtl_ip3, wtl_ip4, wtl_ip5, ups_cell_min, ups_cell_max/*, ntpservip*/;
 
 
   read_community  = $('read_community');
   read_community  = $('read_community');
@@ -113,6 +113,9 @@ function formValidation(){
   syslog_port     = $('syslog_port');
   syslog_port     = $('syslog_port');
   syslog_server   = $('syslog_server');
   syslog_server   = $('syslog_server');
   // ssh_port        = $('ssh_port');
   // ssh_port        = $('ssh_port');
+  rs_server       = $('rs_server');
+  rs_port         = $('rs_port');
+  rs_key          = $('rs_key');
   wtl_ip1         = $('wtl_ip1');
   wtl_ip1         = $('wtl_ip1');
   wtl_ip2         = $('wtl_ip2');
   wtl_ip2         = $('wtl_ip2');
   wtl_ip3         = $('wtl_ip3');
   wtl_ip3         = $('wtl_ip3');
@@ -148,6 +151,11 @@ function formValidation(){
   //     flag = false;
   //     flag = false;
   //   }
   //   }
   // }
   // }
+  if ($('rs_enabled').checked) {
+    if(!ValidateIPaddress(rs_server, ' IP-адрес RADIUS сервера')) flag = false;
+    if(!ValidateNumber(rs_port, ' Порт RADIUS сервера')) flag = false;
+    if(!ValidateAlphanumeric(rs_key, ' Код атрибута access RADIUS сервера')) flag = false;
+  }
   if(ups_cell_min > ups_cell_max) {
   if(ups_cell_min > ups_cell_max) {
     var warn = document.createElement('li');
     var warn = document.createElement('li');
     warn.innerHTML = 'Минимальное напряжение на ячейке не может быть больше максимального!';
     warn.innerHTML = 'Минимальное напряжение на ячейке не может быть больше максимального!';
@@ -414,6 +422,31 @@ function syslogState() {
 //   }
 //   }
 // }
 // }
 
 
+function radiusState() {
+  if (!$('rs_enabled').checked) {
+    $('rs_server').setAttribute('disabled', 'disabled');
+    $('rs_port').setAttribute('disabled', 'disabled');
+    $('rs_pwd').setAttribute('disabled', 'disabled');
+    $('rs_key').setAttribute('disabled', 'disabled');
+  } else {
+    $('rs_server').removeAttribute('disabled');
+    $('rs_port').removeAttribute('disabled');
+    $('rs_pwd').removeAttribute('disabled');
+    $('rs_key').removeAttribute('disabled');
+  }
+}
+
+function authState() {
+  if (!$('swauth').checked) {
+    $('rs_enabled').setAttribute('disabled', 'disabled');
+    $('rs_enabled').checked = false;
+  } else {
+    $('rs_enabled').removeAttribute('disabled');
+    // $('rs_enabled').checked = true;
+  }
+  radiusState();
+}
+
 //########## Info Form Validation ############
 //########## Info Form Validation ############
 
 
 function infoValidation(){
 function infoValidation(){
@@ -946,6 +979,13 @@ function settingsGET(){
     mainvolt_in_hist = new SpinBox('mainvolt_in_hist', {
     mainvolt_in_hist = new SpinBox('mainvolt_in_hist', {
       'name':'mainvolt_in_hist','minimum':10,'maximum':30,'step':1, 'value': data.mainvolt_in_hist
       'name':'mainvolt_in_hist','minimum':10,'maximum':30,'step':1, 'value': data.mainvolt_in_hist
     });
     });
+    // RADIUS params
+    $('rs_server').value    = data.rs_server;
+    $('rs_port').value      = data.rs_port;
+    $('rs_pwd').value       = data.rs_pwd;
+    $('rs_key').value       = data.rs_key;
+    $('rs_enabled').checked = data.rs_enabled;
+    $('swauth').checked     = data.swauth;
     // Whitelist
     // Whitelist
     $('wtl_ip1').value = data.wtl_ip1;
     $('wtl_ip1').value = data.wtl_ip1;
     $('wtl_ip2').value = data.wtl_ip2;
     $('wtl_ip2').value = data.wtl_ip2;
@@ -1031,6 +1071,8 @@ function settingsGET(){
     dhcpState();
     dhcpState();
     telnetState();
     telnetState();
     syslogState();
     syslogState();
+    radiusState();
+    authState();
     timesetType($('ntp'));
     timesetType($('ntp'));
     ftpSettings();
     ftpSettings();
 
 

+ 35 - 0
web_interface/src/wui-11/rslogin.html

@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html lang="">
+<head>
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+<title>Мониторинг</title>
+<link href="main.css" rel="stylesheet">
+<script type="text/javascript" src="role.js"></script>
+</head>
+<body>
+  <div class="navbar navbar-default navbar-fixed-top">
+    <div class="navbar-header">
+      <div><a href="#" class="logo"></a></div>
+    </div>
+  </div>
+  <div class="wrapper" id="content">
+<!--START-->
+<h1>Radius Авторизация</h1>
+
+  <div class="panel panel-default">
+    <div class="panel-body">
+      <form action="login.cgi" method="post" class="login-form form-inline">
+        <label for="login">Логин:&nbsp;</label>
+        <input type="text" class="form-control" name="login" id="login" maxlength="16" style="margin-right: 10px;">
+        <label for="pass">Пароль:&nbsp;</label>
+        <input type="password" class="form-control" name="password" id="pass" maxlength="16">
+        <input type="submit" class="btn btn-primary" value="Войти">
+      </form>
+    </div>
+  </div>
+<!--END-->
+</div>
+</body>
+</html>

+ 6 - 0
web_interface/src/wui-11/settings.cgi

@@ -67,6 +67,12 @@ JSON = {
   "loadvolt_min_hist":0.5,
   "loadvolt_min_hist":0.5,
   "pps_min":5.0,
   "pps_min":5.0,
   "pps_min_hist":0.5,
   "pps_min_hist":0.5,
+  "rs_enabled":0,
+  "rs_server":"127.0.0.1",
+  "rs_port":"1227",
+  "rs_pwd":"12345",
+  "rs_key":"123",
+  "swauth":0,
   "utc":"3.0",
   "utc":"3.0",
   "ntp":"0",
   "ntp":"0",
   "date":"2016-12-26",
   "date":"2016-12-26",

+ 71 - 0
web_interface/src/wui-11/settings.html

@@ -28,6 +28,20 @@
       <input type="submit" class="btn btn-success-inverted" onclick="checkChangePWD(); return false;" value="Отправить">
       <input type="submit" class="btn btn-success-inverted" onclick="checkChangePWD(); return false;" value="Отправить">
     </form>
     </form>
   </div>
   </div>
+  <div id='uploadCertificate'>
+    <form name="upload" onsubmit="return validateUpload(this);">
+      <p>Загрузка сертификата.</p>
+      <div class="upload-wrapper">
+        <input id="uploadFile" placeholder="Файл" disabled="disabled" class="file-name" />
+        <div class="fileUpload btn btn-primary">
+          <span>Выбор файла</span>
+          <input id="uploadBtn" type="file" class="upload" name="datafile"/>
+        </div>
+      </div>
+      <input type="button" id="close-cert" class="btn btn-danger-inverted" value="Отмена">
+      <input class="btn btn-success-inverted" type="submit" value="Загрузить">
+    </form>
+  </div>
   <div id='ftpFWDownload'>
   <div id='ftpFWDownload'>
       <div class="section group">
       <div class="section group">
         <label for="dev_update_method" class="col span_1_of_2">Способ обновления</label>
         <label for="dev_update_method" class="col span_1_of_2">Способ обновления</label>
@@ -90,6 +104,7 @@
     <li><a href="#alarms">Аварии</a></li>
     <li><a href="#alarms">Аварии</a></li>
     <li><a href="#whitelist">Белый список</a></li>
     <li><a href="#whitelist">Белый список</a></li>
     <li><a href="#service">Сервис</a></li>
     <li><a href="#service">Сервис</a></li>
+    <li><a href="#raduis">Безопасность</a></li>
     <li><a href="#ntpt">Время</a></li>
     <li><a href="#ntpt">Время</a></li>
   </ul>
   </ul>
 </div>
 </div>
@@ -400,6 +415,52 @@
     </div>
     </div>
   </div>
   </div>
 </div>
 </div>
+<div id="raduis" class="tabpane">
+  <div class="panel-heading">Безопасность</div>
+  <div class="panel-body section group">
+    <div class="col span_1_of_2">
+    <h4 class="col span_2_of_2">RADIUS сервер</h4>
+      <div class="checkbox col span_2_of_2">
+        <label>
+          <input type="checkbox" name="rs_enabled" id="rs_enabled" onchange="radiusState()"> Включить
+        </label>
+      </div>
+      <label for="rs_server" class="col span_1_of_2">Сервер</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="rs_server" name="rs_server">
+      </div>
+      <label for="rs_port" class="col span_1_of_2">Порт</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="rs_port" name="rs_port" maxlength="5">
+      </div>
+      <label for="rs_pwd" class="col span_1_of_2">Пароль</label>
+      <div class="col span_1_of_2">
+        <input type="text" class="form-control" id="rs_pwd" name="rs_pwd">
+      </div>
+      <label for="rs_key" class="col span_1_of_2 hidden">Код access</label>
+      <div class="col span_1_of_2 hidden">
+        <input type="text" class="form-control" id="rs_key" name="rs_key">
+      </div>
+    </div>
+    <div class="col span_1_of_2">
+      <h4 class="col span_2_of_2">Контроллер</h4>
+      <div class="checkbox col span_2_of_2">
+        <label>
+          <input type="checkbox" name="swauth" id="swauth" onchange="authState()"> Включить авторизацию
+        </label>
+      </div>
+      <div class="col span_2_of_2">
+        <button type="button" class="btn btn-default" id="get-cert" onclick="return blobLoad('getcert.cgi', 'certificate.req', this.id);">
+          <span id="bl_text">Запрос на сертификат</span>
+          <div id="bl_fill"></div>
+        </button>
+      </div>
+      <div class="col span_2_of_2">
+        <button type="button" class="btn btn-default" id="set-cert">Загрузить сертификат...</button>
+      </div>
+    </div>
+  </div>
+</div>
 <div id="ntpt" class="tabpane">
 <div id="ntpt" class="tabpane">
   <div class="panel-heading">Установка даты и времени</div>
   <div class="panel-heading">Установка даты и времени</div>
   <div class="panel-body section group">
   <div class="panel-body section group">
@@ -519,6 +580,16 @@ $('dev-update').onclick = function(){
   $('count-wrap').style.display = 'block';
   $('count-wrap').style.display = 'block';
   $('ftpFWDownload').style.display = 'block';
   $('ftpFWDownload').style.display = 'block';
 };
 };
+$('set-cert').onclick = function(){
+  $('count-wrap').style.display = 'block';
+  $('uploadCertificate').style.display = 'block';
+};
+$('close-cert').onclick = function() {
+  $('count-wrap').style.display = 'none';
+  $('uploadCertificate').style.display = 'none';
+  $('uploadBtn').innerHTML = $('uploadBtn').innerHTML;
+  $('uploadFile').value = '';
+};
 $('close_fw_update').onclick = function(){
 $('close_fw_update').onclick = function(){
   $('count-wrap').style.display = 'none';
   $('count-wrap').style.display = 'none';
   $('ftpFWDownload').style.display = 'none';
   $('ftpFWDownload').style.display = 'none';