From 2be8c66b01a1ceb50ce75c4a9dc90d612c01e4c6 Mon Sep 17 00:00:00 2001 From: zefie Date: Sat, 12 Mar 2022 15:14:32 -0500 Subject: [PATCH] Bug fixes - wtv-tricks:/unregister properly deletes SSID folder - Registration properly saves account data if SSID folder doesn't exist - do not send wtv-mail-count if SSID is not yet registered - Registration now correctly creates the welcome message for user0 - update wtv-tricks:/unregister to only allow the primary user to unregister the account --- .../wtv-register/ValidateReviewAccountInfo.js | 15 ++++++++++++++- .../ServiceVault/wtv-tricks/unregister.js | 5 +++++ zefie_wtvp_minisrv/WTVClientSessionData.js | 1 + zefie_wtvp_minisrv/app.js | 6 ++++-- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateReviewAccountInfo.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateReviewAccountInfo.js index 189fb058..c4f162bf 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateReviewAccountInfo.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateReviewAccountInfo.js @@ -19,7 +19,20 @@ if (!request_headers.query.registering || ssid_sessions[socket.ssid].setSessionData("subscriber_contact_method", request_headers.query.subscriber_contact_method); ssid_sessions[socket.ssid].setSessionData("subscriber_userid", 0); ssid_sessions[socket.ssid].setSessionData("registered", true); - if (!ssid_sessions[socket.ssid].storeSessionData(true, true)) { + var mailstore_exists = ssid_sessions[socket.ssid].mailstore.mailstoreExists(); + var mailbox_exists = false; + if (!mailstore_exists) mailstore_exists = ssid_sessions[socket.ssid].mailstore.createMailstore(); + if (mailstore_exists) { + if (!ssid_sessions[socket.ssid].mailstore.mailboxExists(0)) { + // mailbox does not yet exist, create it + mailbox_exists = ssid_sessions[socket.ssid].mailstore.createMailbox(0); + } + if (mailbox_exists) { + // Just created Inbox for the first time, so create the welcome message + ssid_sessions[socket.ssid].mailstore.createWelcomeMessage(); + } + } + if (!ssid_sessions[socket.ssid].saveSessionData(true, true)) { var errpage = wtvshared.doErrorPage(400); headers = errpage[0]; data = errpage[1]; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js index 7e7a2646..864850f4 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js @@ -8,6 +8,11 @@ if (!ssid_sessions[socket.ssid].getSessionData("registered")) { 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 (ssid_sessions[socket.ssid].user_id !== 0) { + headers += "\nwtv-noback-all: wtv-"; + headers += "\nwtv-expire-all: wtv-"; + var redirect = [5, "wtv-tricks:/tricks"]; + var message = "Error: You must be the primary user to unregister this box."; } else if (request_headers.query.confirm_unregister) { if (ssid_sessions[socket.ssid].unregisterBox()) { headers += "\nwtv-noback-all: wtv-"; diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/WTVClientSessionData.js index 8b84b74c..baab0c88 100644 --- a/zefie_wtvp_minisrv/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/WTVClientSessionData.js @@ -127,6 +127,7 @@ class WTVClientSessionData { } getNumberOfUserAccounts() { + if (!this.isRegistered()) return false; if (this.user_id != 0) return false; // subscriber only command return Object.keys(this.listPrimaryAccountUsers()).length; } diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index c1b71af0..37ec99f6 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -747,8 +747,10 @@ async function sendToClient(socket, headers_obj, data) { if (!headers_obj['minisrv-no-mail-count']) { if (ssid_sessions[socket.ssid]) { - if (ssid_sessions[socket.ssid].mailstore) { - headers_obj['wtv-mail-count'] = ssid_sessions[socket.ssid].mailstore.countUnreadMessages(0); + if (ssid_sessions[socket.ssid].isRegistered()) { + if (ssid_sessions[socket.ssid].mailstore) { + headers_obj['wtv-mail-count'] = ssid_sessions[socket.ssid].mailstore.countUnreadMessages(0); + } } } } else {