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
This commit is contained in:
zefie
2021-08-07 20:16:54 -04:00
parent a91076c9b3
commit 2b36ace012
6 changed files with 126 additions and 1 deletions

View File

@@ -80,7 +80,28 @@ Content-Type: text/html`
<td valign=top align=right><shadow>Service IP number:</shadow> <td valign=top align=right><shadow>Service IP number:</shadow>
<td width=10> <td width=10>
<td valign=top>${service_ip} <td valign=top>${service_ip}
`;
if (ssid_sessions[socket.ssid].getSessionData("registered")) {
data += `<tr>
<td valign=top align=right><shadow>Subscriber Name:</shadow>
<td width=10>
<td valign=top>${ssid_sessions[socket.ssid].getSessionData("subscriber_name")}
<tr> <tr>
<td valign=top align=right><shadow>Subscriber Username:</shadow>
<td width=10>
<td valign=top>${ssid_sessions[socket.ssid].getSessionData("subscriber_username")}
<tr>
<td valign=top align=right><shadow>Subscriber Contact:</shadow>
<td width=10>
<td valign=top>${ssid_sessions[socket.ssid].getSessionData("subscriber_contact")} (${ssid_sessions[socket.ssid].getSessionData("subscriber_contact_method")})`;
} else {
data += `<tr>
<td valign=top align=right><shadow>Unregistered Guest:</shadow>
<td width=10>
<td valign=top>Yes`;
}
data += `<tr>
<td height=20> <td height=20>
<tr> <tr>
<td valign=top align=right><shadow>ROM type:</shadow> <td valign=top align=right><shadow>ROM type:</shadow>

View File

@@ -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}?
<br><br>
<form action="register" method="POST" ENCTYPE="x-www-form-encoded">
<input type="button" action="client:goback" value="Nah, I like being a Guest" borderimage="file://ROM/Borders/ButtonBorder2.bif" text="gold" >
<input type="submit" name="confirm_register" value="Yes, I'm ready to register!" borderimage="file://ROM/Borders/ButtonBorder2.bif" text="gold" selected>
</form>`;
}
data = `<html>
<head>
<display fontsize=medium>
<title>Danger Zone!</title>
`;
if (redirect) data += `<meta http-equiv=Refresh content="${redirect[0]}; url=${redirect[1]}">`;
data += `</head>
<body bgcolor="#000000" text="gold" link="gold" alink="gold" vlink="gold">
<br><br>
${message}
</body>
</html>
`;

View File

@@ -38,7 +38,11 @@ data = `<html>
<tr> <tr>
<td><a href="client:showservices">Show Services</a> <td><a href="client:showservices">Show Services</a>
<td width = 25> <td width = 25>
<td><a href="wtv-tricks:/unregister">Unregister This Box</a> `;
if (ssid_sessions[socket.ssid].getSessionData("registered")) data += `<td><a href="wtv-tricks:/unregister">Unregister This Box</a>`;
else data += `<td><a href="wtv-tricks:/register">Register This Box</a>`
data += `
<tr> <tr>
<td colspan=3 height=6> <td colspan=3 height=6>
<tr> <tr>

View File

@@ -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.<br><br>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!<br><br>
<form action="unregister" method="POST" ENCTYPE="x-www-form-encoded">
<input type="button" action="client:goback" value="No, I changed my mind" borderimage="file://ROM/Borders/ButtonBorder2.bif" text="gold" selected>
<input type="submit" name="confirm_unregister" value="Yes, delete my account" borderimage="file://ROM/Borders/ButtonBorder2.bif" text="gold">
</form>`;
}
data = `<html>
<head>
<display fontsize=medium>
<title>Danger Zone!</title>
`;
if (redirect) data += `<meta http-equiv=Refresh content="${redirect[0]}; url=${redirect[1]}">`;
data += `</head>
<body bgcolor="#000000" text="gold" link="gold" alink="gold" vlink="gold">
<br><br>
${message}
</body>
</html>
`;

View File

@@ -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) { hasCap(cap) {
if (this.capabilities) { if (this.capabilities) {
return this.capabilities[cap] || false; return this.capabilities[cap] || false;

View File

@@ -47,6 +47,9 @@
<SubType>Code</SubType> <SubType>Code</SubType>
</Content> </Content>
<Content Include="ServiceVault\wtv-cookie\list.js" /> <Content Include="ServiceVault\wtv-cookie\list.js" />
<Content Include="ServiceVault\wtv-cookie\reset.js">
<SubType>Code</SubType>
</Content>
<Content Include="ServiceVault\wtv-flashrom\current-noflash.js"> <Content Include="ServiceVault\wtv-flashrom\current-noflash.js">
<SubType>Code</SubType> <SubType>Code</SubType>
</Content> </Content>
@@ -231,9 +234,15 @@
<Content Include="ServiceVault\wtv-tricks\info.js"> <Content Include="ServiceVault\wtv-tricks\info.js">
<SubType>Code</SubType> <SubType>Code</SubType>
</Content> </Content>
<Content Include="ServiceVault\wtv-tricks\register.js">
<SubType>Code</SubType>
</Content>
<Content Include="ServiceVault\wtv-tricks\tricks.js"> <Content Include="ServiceVault\wtv-tricks\tricks.js">
<SubType>Code</SubType> <SubType>Code</SubType>
</Content> </Content>
<Content Include="ServiceVault\wtv-tricks\unregister.js">
<SubType>Code</SubType>
</Content>
<Content Include="ServiceVault\wtv-update\content\diskmaps\DealerDemo.json"> <Content Include="ServiceVault\wtv-update\content\diskmaps\DealerDemo.json">
<SubType>Code</SubType> <SubType>Code</SubType>
</Content> </Content>