made files more connected with pwHash

This commit is contained in:
maru21 2023-10-28 22:07:04 +02:00
parent 4e6562b225
commit 7a4f903bb4
4 changed files with 28 additions and 30 deletions

View File

@ -313,7 +313,7 @@
style="display: none"
>
<span
onclick="this.parentElement.style.display='block'"
onclick="this.parentElement.style.display='none'"
class="w3-button w3-display-topright"
>&times;</span
>

View File

@ -47,20 +47,11 @@ function setPassword() {
let pw = sanitize(x.elements[0].value);
if (pw != "" || pw !== "undefined") {
let pwOld = pw;
passwordHash.set(sha256(pw));
let templateFiles = retrieveData("templateFiles");
if (templateFiles == null) {
let wrongPWAlert = document.getElementById("wrongPWAlert");
wrongPWAlert.style.display = "block";
wrongPWAlert.addEventListener("click", (e) => {
if (e.target && e.target.tagName === "A") {
clearStorage();
document.getElementById("wrongPWAlert").innerHTML =
"<p>all files cleared - set new password</p>";
}
});
passwordHash.set(pwOld);
let tF = retrieveData("templateFiles");
if (tF == null) {
wrongPwAlert();
passwordHash.set("");
x.elements[0].value = "";
return;
}
@ -68,7 +59,7 @@ function setPassword() {
//make sure to bring back persistent stat after logout
activeState.settings.persistentStorage = "true";
let tF = retrieveData("templateFiles");
tF = retrieveData("templateFiles");
if (tF == null || tF.length == 0) {
activeState.settings.persistentStorage = "false";
}
@ -78,6 +69,18 @@ function setPassword() {
}
}
function wrongPwAlert() {
let wrongPWAlert = document.getElementById("wrongPWAlert");
wrongPWAlert.style.display = "block";
wrongPWAlert.addEventListener("click", (e) => {
if (e.target && e.target.tagName === "A") {
clearStorage();
document.getElementById("wrongPWAlert").innerHTML =
"<p>all files cleared - set new password</p>";
}
});
}
function cyrb53(str, seed = 21) {
let h1 = 0xdeadbeef ^ seed,
h2 = 0x41c6ce57 ^ seed;

View File

@ -196,10 +196,8 @@ function saveSettings() {
//transfer tF
if (tF != null) storeData("templateFiles", tF);
if (setting[1] == "false") {
let msg = (activeState.settings.persistentStorage == "false") ? "temporary" : "persistent";
printVersion("storage mode: "+msg+" |");
}
let msg = (activeState.settings.persistentStorage == "false") ? "temporary" : "persistent";
printVersion("storage mode: "+msg+" |");
}
}

View File

@ -3,9 +3,9 @@ import sha256 from "./sha256.min.js";
import { getCurrentDate, passwordHash, sanitize } from "./scripts.js";
const store = {
getItem: function (key) {return getStor().getItem(key)},
setItem: function (key, data) {getStor().setItem(key, data)},
removeItem: function (key) {getStor().removeItem(key)},
getItem: function (key) {return getStor().getItem(sha256(key+activeState.userId))},
setItem: function (key, data) {getStor().setItem(sha256(key+activeState.userId), data)},
removeItem: function (key) {getStor().removeItem(sha256(key+activeState.userId))},
clear: function () {getStor().clear()},
};
@ -79,7 +79,7 @@ function storeData(name, data, ref) {
let lT = activeState.loadedTemplate;
let key = sha256(name + "_m21_" + lT);
if (name == "templateFiles") {
key = sha256(name + "_m21_");
key = sha256(name + "_m21_" + activeState.userId);
}
store.setItem(key, obfuscate(data));
}
@ -105,7 +105,7 @@ function retrieveData(name, template = "none") {
let lT = activeState.loadedTemplate;
key = sha256(name + "_m21_" + lT);
if (name == "templateFiles") {
key = sha256(name + "_m21_");
key = sha256(name + "_m21_"+activeState.userId);
}
} else {
key = sha256(name + "_m21_" + template);
@ -133,15 +133,12 @@ function clearData(name, template = "none") {
lT = activeState.loadedTemplate;
key = sha256(name + "_m21_" + lT);
if (name == "templateFiles") {
key = sha256(name + "_m21_");
key = sha256(name + "_m21_"+activeState.userId);
}
} else {
lT = template;
key = sha256(name + "_m21_" + template);
}
if (name == "templateFiles") {
key = sha256(name + "_m21_");
}
store.removeItem(key);
}
@ -249,7 +246,7 @@ function importBookShelf() {
});
}
store.setItem(
sha256("templateFiles-"),
sha256("templateFiles_m21_"+activeState.userId),
obfuscate(JSON.stringify(templateFilesArray))
);
}
@ -264,7 +261,7 @@ function importBookShelf() {
}
function storeSettings(data, get = false) {
let key = sha256("settings_m21_");
let key = sha256("settings_m21_"+activeState.userId);
if (get) {
let cdata = "";