Browse Source

[WebUI] Do not display password form when secure_ip is set

Fixes: #2553
tags/1.8.1
Alexander Moisseev 5 years ago
parent
commit
626fe0339c
2 changed files with 53 additions and 54 deletions
  1. 2
    2
      interface/index.html
  2. 51
    52
      interface/js/app/rspamd.js

+ 2
- 2
interface/index.html View File

@@ -357,11 +357,11 @@
</div>

<!-- login modal -->
<div id="connectDialog" class="modal" tabindex="-1" role="dialog" aria-labelledby="RSPAMD Connect">
<div id="connectDialog" class="modal" tabindex="-1" role="dialog" style="display:none">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3>RSPAMD Connect</h3>
<h3>Login to Rspamd</h3>
</div>
<div class="modal-body" id="connectBody">
<form id="connectForm">

+ 51
- 52
interface/js/app/rspamd.js View File

@@ -134,13 +134,6 @@ function ($, D3pie, visibility, NProgress, tab_stat, tab_graph, tab_config,
sessionStorage.setItem("Password", password);
}

function isLogged() {
if (sessionStorage.getItem("Credentials") !== null) {
return true;
}
return false;
}

function displayUI() {
// In many browsers local storage can only store string.
// So when we store the boolean true or false, it actually stores the strings "true" or "false".
@@ -300,53 +293,59 @@ function ($, D3pie, visibility, NProgress, tab_stat, tab_graph, tab_config,
};

ui.connect = function () {
if (isLogged()) {
displayUI();
return;
}

var dialog = $("#connectDialog");
var backdrop = $("#backDrop");
$("#mainUI").hide();
$(dialog).show();
$(backdrop).show();
$("#connectPassword").focus();
$("#connectForm").off("submit");

$("#connectForm").on("submit", function (e) {
e.preventDefault();
var password = $("#connectPassword").val();
if (!(/^[\u0020-\u007e]*$/).test(password)) {
alertMessage("alert-modal alert-error", "Invalid characters in the password");
// Query "/stat" to check if user is already logged in or client ip matches "secure_ip"
$.ajax({
type: "GET",
url: "stat",
async: false,
success: function () {
displayUI();
},
error: function () {
var dialog = $("#connectDialog");
var backdrop = $("#backDrop");
$("#mainUI").hide();
$(dialog).show();
$(backdrop).show();
$("#connectPassword").focus();
return;
}

ui.query("auth", {
headers: {
Password: password
},
success: function (json) {
var data = json[0].data;
$("#connectPassword").val("");
if (data.auth === "ok") {
sessionStorage.setItem("read_only", data.read_only);
saveCredentials(password);
$(dialog).hide();
$(backdrop).hide();
displayUI();
$("#connectForm").off("submit");

$("#connectForm").on("submit", function (e) {
e.preventDefault();
var password = $("#connectPassword").val();
if (!(/^[\u0020-\u007e]*$/).test(password)) {
alertMessage("alert-modal alert-error", "Invalid characters in the password");
$("#connectPassword").focus();
return;
}
},
error: function (jqXHR) {
ui.alertMessage("alert-modal alert-error", jqXHR.statusText);
$("#connectPassword").val("");
$("#connectPassword").focus();
},
params: {
global: false,
},
server: "local"
});

ui.query("auth", {
headers: {
Password: password
},
success: function (json) {
var data = json[0].data;
$("#connectPassword").val("");
if (data.auth === "ok") {
sessionStorage.setItem("read_only", data.read_only);
saveCredentials(password);
$(dialog).hide();
$(backdrop).hide();
displayUI();
}
},
error: function (jqXHR) {
ui.alertMessage("alert-modal alert-error", jqXHR.statusText);
$("#connectPassword").val("");
$("#connectPassword").focus();
},
params: {
global: false,
},
server: "local"
});
});
}
});
};


Loading…
Cancel
Save