From eed5acc34683a3f8d6fee50bee3f9fb90be81158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Wed, 15 Feb 2017 17:23:06 +0100 Subject: [PATCH] Unified web file to improve reliability --- code/espurna/config/general.h | 3 + code/espurna/data/index.html.gz | Bin 4000 -> 48361 bytes code/espurna/data/password.html.gz | Bin 791 -> 0 bytes code/espurna/data/script.js.gz | Bin 37897 -> 0 bytes code/espurna/data/style.css.gz | Bin 5947 -> 0 bytes code/espurna/web.ino | 303 +++++++++++++++-------------- code/gulpfile.js | 2 +- code/html/custom.css | 4 + code/html/custom.js | 67 ++++--- code/html/index.html | 49 ++++- code/html/password.html | 76 -------- 11 files changed, 257 insertions(+), 247 deletions(-) delete mode 100644 code/espurna/data/password.html.gz delete mode 100644 code/espurna/data/script.js.gz delete mode 100644 code/espurna/data/style.css.gz delete mode 100644 code/html/password.html diff --git a/code/espurna/config/general.h b/code/espurna/config/general.h index 52b994db..2406eb29 100644 --- a/code/espurna/config/general.h +++ b/code/espurna/config/general.h @@ -93,6 +93,9 @@ #define WEBSERVER_PORT 80 #define DNS_PORT 53 +#define WEB_MODE_NORMAL 0 +#define WEB_MODE_PASSWORD 1 + #define AP_MODE AP_MODE_ALONE #define AP_MODE_IP "192.168.4.1" #define AP_MODE_GW "192.168.4.1" diff --git a/code/espurna/data/index.html.gz b/code/espurna/data/index.html.gz index 2ed0b47a12f2cfa3b0b0c4492444aea4789aa453..e46b5c7d0831a66a4f64c84574b5bd6adddb6c73 100644 GIT binary patch literal 48361 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 VhTc)_b5NSc{~PN6*4Gq#0swPU-=+Wn literal 4000 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 VH@~=kolC=i++U2BltlRk001Z+jI00v diff --git a/code/espurna/data/script.js.gz b/code/espurna/data/script.js.gz deleted file mode 100644 index 30e476c910efa22ae6f2d5d103046f05a80baaf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37897 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 0) { - save = changed = true; + // Clean wifi networks + for (int i = 0; i < network; i++) { + if (getSetting("pass" + String(i)).length() > 0) delSetting("pass" + String(i)); + if (getSetting("ip" + String(i)).length() == 0) delSetting("ip" + String(i)); + if (getSetting("gw" + String(i)).length() == 0) delSetting("gw" + String(i)); + if (getSetting("mask" + String(i)).length() == 0) delSetting("mask" + String(i)); + if (getSetting("dns" + String(i)).length() == 0) delSetting("dns" + String(i)); + } + for (int i = network; i 0) { + save = changed = true; + } + delSetting("ssid" + String(i)); + delSetting("pass" + String(i)); + delSetting("ip" + String(i)); + delSetting("gw" + String(i)); + delSetting("mask" + String(i)); + delSetting("dns" + String(i)); } - delSetting("ssid" + String(i)); - delSetting("pass" + String(i)); - delSetting("ip" + String(i)); - delSetting("gw" + String(i)); - delSetting("mask" + String(i)); - delSetting("dns" + String(i)); + } // Save settings @@ -297,130 +308,146 @@ void _wsStart(uint32_t client_id) { DynamicJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); - root["app"] = APP_NAME; - root["version"] = APP_VERSION; - root["buildDate"] = __DATE__; - root["buildTime"] = __TIME__; - - root["manufacturer"] = String(MANUFACTURER); - root["chipid"] = chipid; - root["mac"] = WiFi.macAddress(); - root["device"] = String(DEVICE); - root["hostname"] = getSetting("hostname", HOSTNAME); - root["network"] = getNetwork(); - root["deviceip"] = getIP(); - - root["mqttStatus"] = mqttConnected(); - root["mqttServer"] = getSetting("mqttServer", MQTT_SERVER); - root["mqttPort"] = getSetting("mqttPort", MQTT_PORT); - root["mqttUser"] = getSetting("mqttUser"); - root["mqttPassword"] = getSetting("mqttPassword"); - root["mqttTopic"] = getSetting("mqttTopic", MQTT_TOPIC); - - JsonArray& relay = root.createNestedArray("relayStatus"); - for (unsigned char relayID=0; relayID 1) { - root["multirelayVisible"] = 1; - root["relaySync"] = getSetting("relaySync", RELAY_SYNC); - } + bool changePassword = false; + #if FORCE_CHANGE_PASS == 1 + String adminPass = getSetting("adminPass", ADMIN_PASS); + if (adminPass.equals(ADMIN_PASS)) changePassword = true; + #endif - root["webPort"] = getSetting("webPort", WEBSERVER_PORT).toInt(); + if (changePassword) { - root["apiEnabled"] = getSetting("apiEnabled").toInt() == 1; - root["apiKey"] = getSetting("apiKey"); + root["webMode"] = WEB_MODE_PASSWORD; - root["tmpUnits"] = getSetting("tmpUnits", TMP_UNITS).toInt(); + } else { - #if ENABLE_DOMOTICZ + root["webMode"] = WEB_MODE_NORMAL; + + root["app"] = APP_NAME; + root["version"] = APP_VERSION; + root["buildDate"] = __DATE__; + root["buildTime"] = __TIME__; + + root["manufacturer"] = String(MANUFACTURER); + root["chipid"] = chipid; + root["mac"] = WiFi.macAddress(); + root["device"] = String(DEVICE); + root["hostname"] = getSetting("hostname", HOSTNAME); + root["network"] = getNetwork(); + root["deviceip"] = getIP(); + + root["mqttStatus"] = mqttConnected(); + root["mqttServer"] = getSetting("mqttServer", MQTT_SERVER); + root["mqttPort"] = getSetting("mqttPort", MQTT_PORT); + root["mqttUser"] = getSetting("mqttUser"); + root["mqttPassword"] = getSetting("mqttPassword"); + root["mqttTopic"] = getSetting("mqttTopic", MQTT_TOPIC); + + JsonArray& relay = root.createNestedArray("relayStatus"); + for (unsigned char relayID=0; relayID 1) { + root["multirelayVisible"] = 1; + root["relaySync"] = getSetting("relaySync", RELAY_SYNC); + } - root["dczVisible"] = 1; - root["dczTopicIn"] = getSetting("dczTopicIn", DOMOTICZ_IN_TOPIC); - root["dczTopicOut"] = getSetting("dczTopicOut", DOMOTICZ_OUT_TOPIC); + root["webPort"] = getSetting("webPort", WEBSERVER_PORT).toInt(); - JsonArray& dczRelayIdx = root.createNestedArray("dczRelayIdx"); - for (byte i=0; irequestAuthentication(); - - #if FORCE_CHANGE_PASS == 1 - String password = getSetting("adminPass", ADMIN_PASS); - if (password.equals(ADMIN_PASS)) { - request->send(SPIFFS, "/password.html"); - } else { - request->send(SPIFFS, "/index.html"); - } - #else - request->send(SPIFFS, "/index.html"); - #endif + request->send(SPIFFS, "/index.html"); } void _onAuth(AsyncWebServerRequest *request) { diff --git a/code/gulpfile.js b/code/gulpfile.js index 35279c9f..a890410c 100644 --- a/code/gulpfile.js +++ b/code/gulpfile.js @@ -91,4 +91,4 @@ gulp.task('html', function() { /* Build file system */ gulp.task('buildfs_split', ['clean', 'files', 'html']); gulp.task('buildfs_inline', ['clean', 'files', 'inline']); -gulp.task('default', ['buildfs_split']); +gulp.task('default', ['buildfs_inline']); diff --git a/code/html/custom.css b/code/html/custom.css index 8a1aac33..9f633c0e 100644 --- a/code/html/custom.css +++ b/code/html/custom.css @@ -28,6 +28,7 @@ width: 100px; margin: 5px auto; } +.button-update-password, .button-update { background: #1f8dd6; } @@ -86,3 +87,6 @@ div.hint { .pure-form .center { margin: .5em 0 .2em; } +.webmode { + display: none; +} diff --git a/code/html/custom.js b/code/html/custom.js index b89abc5b..7204d646 100644 --- a/code/html/custom.js +++ b/code/html/custom.js @@ -10,9 +10,7 @@ function checkPassword(str) { return re.test(str); } -function validateForm() { - - var form = $("#formSave"); +function validateForm(form) { // password var adminPass1 = $("input[name='adminPass1']", form).val(); @@ -32,8 +30,9 @@ function validateForm() { } function doUpdate() { - if (validateForm()) { - var data = $("#formSave").serializeArray(); + var form = $("#formSave"); + if (validateForm(form)) { + var data = form.serializeArray(); websock.send(JSON.stringify({'config': data})); $(".powExpected").val(0); $("input[name='powExpectedReset']") @@ -43,6 +42,15 @@ function doUpdate() { return false; } +function doUpdatePassword() { + var form = $("#formPassword"); + if (validateForm(form)) { + var data = form.serializeArray(); + websock.send(JSON.stringify({'config': data})); + } + return false; +} + function doReset() { var response = window.confirm("Are you sure you want to reset the device?"); if (response == false) return false; @@ -168,6 +176,24 @@ function addNetwork() { } +function forgetCredentials() { + $.ajax({ + 'method': 'GET', + 'url': '/', + 'async': false, + 'username': "logmeout", + 'password': "123456", + 'headers': { "Authorization": "Basic xxx" } + }).done(function(data) { + return false; + // If we don't get an error, we actually got an error as we expect an 401! + }).fail(function(){ + // We expect to get an 401 Unauthorized error! In this case we are successfully + // logged out and we redirect the user. + return true; + }); +} + function processData(data) { // title @@ -185,31 +211,21 @@ function processData(data) { Object.keys(data).forEach(function(key) { + // Web Modes + if (key == "webMode") { + password = data.webMode == 1; + $("#layout").toggle(data.webMode == 0); + $("#password").toggle(data.webMode == 1); + } + // Actions if (key == "action") { if (data.action == "reload") { - if (password) { - - // Forget current authentication - $.ajax({ - 'method': 'GET', - 'url': '/', - 'async': false, - 'username': "logmeout", - 'password': "123456", - 'headers': { "Authorization": "Basic xxx" } - }).done(function(data) { - // If we don't get an error, we actually got an error as we expect an 401! - }).fail(function(){ - // We expect to get an 401 Unauthorized error! In this case we are successfully - // logged out and we redirect the user. - window.location = "/"; - }); - - } else { + if (password) forgetCredentials(); + setTimeout(function() { window.location = "/"; - } + }, 1000); } return; @@ -368,6 +384,7 @@ function init() { $("#menuLink").on('click', toggleMenu); $(".button-update").on('click', doUpdate); + $(".button-update-password").on('click', doUpdatePassword); $(".button-reset").on('click', doReset); $(".button-reconnect").on('click', doReconnect); $(".button-apikey").on('click', doGenerateAPIKey); diff --git a/code/html/index.html b/code/html/index.html index 08450f43..f8b7dd78 100644 --- a/code/html/index.html +++ b/code/html/index.html @@ -19,7 +19,52 @@ -
+
+ +
+ +
+ + + +
+ +
+

SECURITY

+

Before using this device you have to change the default password for the user 'admin'. This password will be used for the AP mode hotspot, the web interface (where you are now) and the over-the-air updates.

+
+ +
+ +
+ +
+ + +
 
+
+ The administrator password is used to access this web interface (user 'admin'), but also to connect to the device when in AP mode or to flash a new firmware over-the-air (OTA).
+ It should have at least eight characters (letters, numbers or the underscore) and at least one number, one lowercase and one uppercase letter.
+
+ +
+ + +
+ + + +
+
+
+ +
+ +
+ +
+ +