From 2b36ace01253f0af7f6e277957814d8ea1412af7 Mon Sep 17 00:00:00 2001 From: zefie Date: Sat, 7 Aug 2021 20:16:54 -0400 Subject: [PATCH] update wtv-tricks system - Info now shows Guest Mode or Subscriber Info - Implemented wtv-tricks:/unregister - Implemented wtv-tricks:/register - Show correct link in wtv-tricks:/tricks based on Guest Mode status --- .../ServiceVault/wtv-tricks/info.js | 21 ++++++++++ .../ServiceVault/wtv-tricks/register.js | 39 +++++++++++++++++++ .../ServiceVault/wtv-tricks/tricks.js | 6 ++- .../ServiceVault/wtv-tricks/unregister.js | 39 +++++++++++++++++++ zefie_wtvp_minisrv/WTVClientSessionData.js | 13 +++++++ zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj | 9 +++++ 6 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js index 87f93ade..bff8a5f4 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js @@ -80,7 +80,28 @@ Content-Type: text/html` Service IP number: ${service_ip} +`; + if (ssid_sessions[socket.ssid].getSessionData("registered")) { + data += ` + Subscriber Name: + + ${ssid_sessions[socket.ssid].getSessionData("subscriber_name")} + Subscriber Username: + + ${ssid_sessions[socket.ssid].getSessionData("subscriber_username")} + + Subscriber Contact: + + ${ssid_sessions[socket.ssid].getSessionData("subscriber_contact")} (${ssid_sessions[socket.ssid].getSessionData("subscriber_contact_method")})`; + } else { + data += ` + Unregistered Guest: + + Yes`; + } + + data += ` ROM type: diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js new file mode 100644 index 00000000..8e7c1c61 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js @@ -0,0 +1,39 @@ +headers = `200 OK +Content-Type: text/html`; + +if (ssid_sessions[socket.ssid].getSessionData("registered")) { + var redirect = [10, "client:goback?"]; + var message = "Error: Your box is already registered. If you would like to re-register, you must first unregister."; +} else if (request_headers.query.confirm_register) { + headers += ` +wtv-noback-all: wtv- +wtv-expire-all: wtv- +wtv-relogin-url: wtv-1800:/preregister?relogin=true +wtv-reconnect-url: wtv-1800:/preregister?reconnect=true +wtv-boot-url: wtv-1800:/preregister?relogin=true`; + + var message = "You will now be be redirected to registration."; + var redirect = [3, "client:relog?"]; +} else { + message = `Are you ready to register your box with ${minisrv_config.config.service_name}? +

+
+ + +
`; +} + +data = ` + + +Danger Zone! +`; +if (redirect) data += ``; + +data += ` + +

+${message} + + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/tricks.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/tricks.js index a57d53a4..f994ee0f 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/tricks.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/tricks.js @@ -38,7 +38,11 @@ data = ` Show Services -Unregister This Box +`; +if (ssid_sessions[socket.ssid].getSessionData("registered")) data += `Unregister This Box`; +else data += `Register This Box` + +data += ` diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js new file mode 100644 index 00000000..1d2495fc --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js @@ -0,0 +1,39 @@ +headers = `200 OK +Content-Type: text/html`; + +if (!ssid_sessions[socket.ssid].getSessionData("registered")) { + var redirect = [10, "client:goback?"]; + 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()) { + headers += "\nwtv-noback-all: wtv-"; + headers += "\nwtv-expire-all: wtv-"; + var message = "Your account data has been successfully removed. You will now be be redirected to registration."; + var redirect = [3, "client:relog?"]; + } else { + 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. SSID verifcation may be required to perform a manual deletion.

Returning from whence you came..."; + var redirect = [10, "client:goback?"]; + } +} else { + message = `Are you sure you wish to unregister your account? Session Data deleted by this tool is unrecoverable, even by ${minisrv_config.config.service_owner}. +Please be absolutely sure this is what you want to do!

+
+ + +
`; +} + +data = ` + + +Danger Zone! +`; +if (redirect) data += ``; + +data += ` + +

+${message} + + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/WTVClientSessionData.js index baf9cdde..55c2c5be 100644 --- a/zefie_wtvp_minisrv/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/WTVClientSessionData.js @@ -197,6 +197,19 @@ class WTVClientSessionData { } + unregisterBox() { + try { + if (this.fs.lstatSync(this.session_storage + this.path.sep + this.ssid + ".json")) { + return this.fs.unlinkSync(this.session_storage + this.path.sep + this.ssid + ".json"); + this.session_store = {}; + } + } catch (e) { + // Don't log error 'file not found', it just means the client isn't registered yet + if (e.code != "ENOENT") console.error(" # Error deleting session data for", this.filterSSID(this.ssid), e); + return false; + } + } + hasCap(cap) { if (this.capabilities) { return this.capabilities[cap] || false; diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj index ec002c46..6f63a8be 100644 --- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj +++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj @@ -47,6 +47,9 @@ Code + + Code + Code @@ -231,9 +234,15 @@ Code + + Code + Code + + Code + Code