delete user file store when unregistering

This commit is contained in:
zefie
2021-08-11 01:18:16 -04:00
parent 95442a12af
commit 1910ded10a
2 changed files with 11 additions and 5 deletions

View File

@@ -2,7 +2,9 @@ headers = `200 OK
Content-Type: text/html`;
if (!ssid_sessions[socket.ssid].getSessionData("registered")) {
var redirect = [10, "client:goback?"];
headers += "\nwtv-noback-all: wtv-";
headers += "\nwtv-expire-all: wtv-";
var redirect = [5, "client:relogin?"];
var message = "Error: Your box is not registered. You are accessing " + minisrv_config.config.service_name + " in Guest Mode. There is nothing to delete!";
} else if (request_headers.query.confirm_unregister) {
if (ssid_sessions[socket.ssid].unregisterBox()) {
@@ -14,7 +16,7 @@ if (!ssid_sessions[socket.ssid].getSessionData("registered")) {
} else {
var redirect = [10, "client:goback?"];
var message = "There was an error deleting your account data. Please try again later. If the problem persists, please contact " + minisrv_config.config.service_owner + " to request manual deletion.";
message += "SSID verifcation may be required to perform a manual deletion.< br > <br>Returning from whence you came...<br><br>";
message += "SSID verifcation may be required to perform a manual deletion.<br><br>Returning from whence you came...<br><br>";
message += `<a href="${redirect[1]}">Click here if you are not automatically redirected.</a>`;
}
} else {

View File

@@ -295,12 +295,16 @@ class WTVClientSessionData {
}
unregisterBox() {
var user_store_base = this.wtvshared.makeSafePath(this.wtvshared.getAbsolutePath(this.minisrv_config.config.SessionStore), this.path.sep + this.ssid);
try {
if (this.fs.lstatSync(this.minisrv_config.config.SessionStore + this.path.sep + this.ssid + ".json")) {
this.fs.unlinkSync(this.minisrv_config.config.SessionStore + this.path.sep + this.ssid + ".json");
if (this.fs.existsSync(user_store_base + ".json")) {
this.fs.unlinkSync(user_store_base + ".json");
this.session_store = {};
return true;
}
if (this.fs.existsSync(user_store_base)) {
this.fs.rmdirSync(user_store_base, { recursive: true });
}
return true;
} catch (e) {
// Don't log error 'file not found', it just means the client isn't registered yet
console.error(" # Error deleting session data for", this.wtvshared.filterSSID(this.ssid), e);