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 {