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
|