fixed logout / login
This commit is contained in:
parent
e08e3e4bbd
commit
a39c16e54b
@ -313,7 +313,7 @@
|
|||||||
style="display: none"
|
style="display: none"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
onclick="this.parentElement.style.display='none'"
|
onclick="this.parentElement.style.display='block'"
|
||||||
class="w3-button w3-display-topright"
|
class="w3-button w3-display-topright"
|
||||||
>×</span
|
>×</span
|
||||||
>
|
>
|
||||||
@ -322,7 +322,6 @@
|
|||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
style="text-decoration: underline"
|
style="text-decoration: underline"
|
||||||
onclick="localStorage.clear()"
|
|
||||||
>clear</a
|
>clear</a
|
||||||
>
|
>
|
||||||
all files?
|
all files?
|
||||||
|
|||||||
@ -55,6 +55,7 @@ function init() {
|
|||||||
try {
|
try {
|
||||||
window.localStorage.getItem("test")
|
window.localStorage.getItem("test")
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.log("localStorage not available");
|
||||||
activeState.settings.persistentStorage = "false";
|
activeState.settings.persistentStorage = "false";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,12 +77,13 @@ function init() {
|
|||||||
//load settings from storage
|
//load settings from storage
|
||||||
let settings = storeSettings("getInit", true);
|
let settings = storeSettings("getInit", true);
|
||||||
|
|
||||||
if (settings != "") {
|
if (settings != null) {
|
||||||
for (let setting of Object.entries(settings)) {
|
for (let setting of Object.entries(settings)) {
|
||||||
activeState.settings[setting[0]] = setting[1];
|
activeState.settings[setting[0]] = setting[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//load NavigationBar with templates according to server
|
//load NavigationBar with templates according to server
|
||||||
loadNavBar();
|
loadNavBar();
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { createStorageObj, retrieveData } from "./storage.js";
|
import { clearStorage, createStorageObj, retrieveData } from "./storage.js";
|
||||||
import sha256 from "./sha256.min.js";
|
import sha256 from "./sha256.min.js";
|
||||||
import XORCipher from "./xorc.js";
|
import XORCipher from "./xorc.js";
|
||||||
import getBrowserFingerprint from "./identify.js"
|
import getBrowserFingerprint from "./identify.js"
|
||||||
@ -7,29 +7,42 @@ export const passwordHash = {
|
|||||||
name: cyrb53("m21_"+getBrowserFingerprint( { hardwareOnly: true } )),
|
name: cyrb53("m21_"+getBrowserFingerprint( { hardwareOnly: true } )),
|
||||||
toString: function () {
|
toString: function () {
|
||||||
let token = window.activeState.sessionToken;
|
let token = window.activeState.sessionToken;
|
||||||
if (token == null || token == "") return "none";
|
if (token == null) return "";
|
||||||
|
if (token == "") return "";
|
||||||
return XORCipher.decode(this.name, token);
|
return XORCipher.decode(this.name, token);
|
||||||
},
|
},
|
||||||
set: function (pw) {
|
set: function (pw) {
|
||||||
activeState.sessionToken = XORCipher.encode(this.name, pw);
|
activeState.sessionToken = XORCipher.encode(this.name, pw);
|
||||||
|
|
||||||
},
|
},
|
||||||
init: function () {
|
init: function () {
|
||||||
//check if cookie exists
|
//check if cookie exists
|
||||||
if (getCookie(sha256(this.name)) != null) {
|
if (getCookie(sha256(this.name)) != null) {
|
||||||
this.set(XORCipher.decode(sha256(this.name), getCookie(sha256(this.name))));
|
if (getCookie(sha256(this.name)) != "") {
|
||||||
|
this.set(XORCipher.decode(sha256(this.name), getCookie(sha256(this.name))));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (passwordHash == "") {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
let verifiedStatus = false;
|
let verifiedStatus = false;
|
||||||
let tF = retrieveData("templateFiles");
|
let tF = retrieveData("templateFiles");
|
||||||
if (tF != null) {verifiedStatus = true}
|
if (tF != null) {verifiedStatus = true}
|
||||||
|
|
||||||
|
|
||||||
if (verifiedStatus == true) {
|
if (verifiedStatus == true) {
|
||||||
setCookie(sha256(this.name), XORCipher.encode(sha256(this.name), this), 10);
|
setCookie(sha256(this.name), XORCipher.encode(sha256(this.name), this), 10);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
verify: function () {
|
verify: function () {
|
||||||
|
if (passwordHash == "") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
let verifiedStatus = false;
|
let verifiedStatus = false;
|
||||||
let tF = retrieveData("templateFiles");
|
let tF = retrieveData("templateFiles");
|
||||||
if (tF != null) {verifiedStatus = true}
|
if (tF != null) {
|
||||||
|
verifiedStatus = true
|
||||||
|
}
|
||||||
return verifiedStatus;
|
return verifiedStatus;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,16 +56,28 @@ function setPassword() {
|
|||||||
passwordHash.set(sha256(pw));
|
passwordHash.set(sha256(pw));
|
||||||
let templateFiles = retrieveData("templateFiles");
|
let templateFiles = retrieveData("templateFiles");
|
||||||
if (templateFiles == null) {
|
if (templateFiles == null) {
|
||||||
document.getElementById("wrongPWAlert").style.display = "block";
|
let wrongPWAlert = document.getElementById("wrongPWAlert");
|
||||||
const alertTimeout = setTimeout(() => {
|
wrongPWAlert.style.display = "block";
|
||||||
document.getElementById("wrongPWAlert").style.display = "none";
|
wrongPWAlert.addEventListener("click", (e) => {
|
||||||
}, 5000);
|
if (e.target && e.target.tagName === "A") {
|
||||||
|
clearStorage();
|
||||||
|
document.getElementById("wrongPWAlert").innerHTML =
|
||||||
|
"<p>all files cleared - set new password</p>";
|
||||||
|
}
|
||||||
|
});
|
||||||
passwordHash.set(pwOld);
|
passwordHash.set(pwOld);
|
||||||
x.elements[0].value = "";
|
x.elements[0].value = "";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//user logged in
|
//user logged in
|
||||||
|
|
||||||
|
//make sure to bring back persistent stat after logout
|
||||||
|
activeState.settings.persistentStorage = "true";
|
||||||
|
let tF = retrieveData("templateFiles");
|
||||||
|
if (tF == null || tF.length == 0) {
|
||||||
|
activeState.settings.persistentStorage = "false";
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById("login").style.display = "none";
|
document.getElementById("login").style.display = "none";
|
||||||
setCookie(sha256(passwordHash.name), XORCipher.encode(sha256(passwordHash.name), passwordHash), 10)
|
setCookie(sha256(passwordHash.name), XORCipher.encode(sha256(passwordHash.name), passwordHash), 10)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import { hideMenus, modalNotifier, printVersion, resetNavBar } from "./evts.js";
|
import { hideMenus, modalNotifier, printVersion, resetNavBar } from "./evts.js";
|
||||||
import { passwordHash, sanitize } from "./scripts.js";
|
import { passwordHash, sanitize } from "./scripts.js";
|
||||||
import sha256 from "./sha256.min.js";
|
import { clearData, retrieveData, storeData, storeSettings } from "./storage.js";
|
||||||
import { retrieveData, storeData, storeSettings } from "./storage.js";
|
|
||||||
|
|
||||||
const buildSettings = () => {
|
const buildSettings = () => {
|
||||||
//set current page value in activeState object
|
//set current page value in activeState object
|
||||||
@ -185,16 +184,14 @@ function saveSettings() {
|
|||||||
if (setting[0] == "persistentStorage") {
|
if (setting[0] == "persistentStorage") {
|
||||||
let tF = retrieveData("templateFiles");
|
let tF = retrieveData("templateFiles");
|
||||||
let settings = storeSettings("get", true);
|
let settings = storeSettings("get", true);
|
||||||
|
storeSettings(obj);
|
||||||
activeState.settings[setting[0]] = setting[1];
|
activeState.settings[setting[0]] = setting[1];
|
||||||
|
|
||||||
if (setting[1] == "false") {
|
if (setting[1] == "false") {
|
||||||
try {
|
|
||||||
window.localStorage.removeItem(sha256("settings_m21_"));
|
|
||||||
} catch (e) {}
|
|
||||||
let msg = (activeState.settings.persistentStorage == "false") ? "temporary" : "persistent";
|
let msg = (activeState.settings.persistentStorage == "false") ? "temporary" : "persistent";
|
||||||
printVersion("storage mode: "+msg+" |");
|
printVersion("storage mode: "+msg+" |");
|
||||||
}
|
}
|
||||||
if (settings != "") storeSettings(settings);
|
if (settings != "") storeSettings(obj);
|
||||||
if (tF != null) storeData("templateFiles", tF);
|
if (tF != null) storeData("templateFiles", tF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -133,6 +133,9 @@ function clearData(name, template = "none") {
|
|||||||
lT = template;
|
lT = template;
|
||||||
key = sha256(name + "_m21_" + template);
|
key = sha256(name + "_m21_" + template);
|
||||||
}
|
}
|
||||||
|
if (name == "templateFiles") {
|
||||||
|
key = sha256(name + "_m21_");
|
||||||
|
}
|
||||||
store.removeItem(key);
|
store.removeItem(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,6 +179,7 @@ function getFileName(ref = "none") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function obfuscate(data, mode = true) {
|
function obfuscate(data, mode = true) {
|
||||||
|
if (data == null | data == "") return "";
|
||||||
if (mode) {
|
if (mode) {
|
||||||
return XORCipher.encode(sha256(passwordHash), data);
|
return XORCipher.encode(sha256(passwordHash), data);
|
||||||
} else {
|
} else {
|
||||||
@ -271,6 +275,10 @@ function storeSettings(data, get = false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clearStorage() {
|
||||||
|
store.clear();
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
createStorageObj,
|
createStorageObj,
|
||||||
storeData,
|
storeData,
|
||||||
@ -280,4 +288,5 @@ export {
|
|||||||
createBookShelf,
|
createBookShelf,
|
||||||
importBookShelf,
|
importBookShelf,
|
||||||
storeSettings,
|
storeSettings,
|
||||||
|
clearStorage
|
||||||
};
|
};
|
||||||
|
|||||||
@ -48,8 +48,10 @@ function loadTemplate(template, newFlag = false, loadOnly = false) {
|
|||||||
} else {
|
} else {
|
||||||
cdata = retrieveData("userInputForce");
|
cdata = retrieveData("userInputForce");
|
||||||
}
|
}
|
||||||
if (cdata != "" || cdata == null) {
|
if (cdata != "") {
|
||||||
retrieveForm(cdata);
|
if (cdata == null) {
|
||||||
|
retrieveForm(cdata);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//select first object and focus on it
|
//select first object and focus on it
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user