From c539d408c9937be3bccacc95c85aa855d9efaab0 Mon Sep 17 00:00:00 2001 From: zefie Date: Sat, 7 Aug 2021 21:08:51 -0400 Subject: [PATCH] implement config option to disable guest mode --- user_config_README.md | 6 +++++- .../ServiceVault/wtv-head-waiter/login-stage-two.js | 7 ++++--- .../ServiceVault/wtv-register/ValidateWelcome.js | 2 +- zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js | 8 +++++--- zefie_wtvp_minisrv/config.json | 3 ++- zefie_wtvp_minisrv/package.json | 2 +- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/user_config_README.md b/user_config_README.md index 2db88a4f..392e5398 100644 --- a/user_config_README.md +++ b/user_config_README.md @@ -17,7 +17,11 @@ If an absolute path (`wtv-url:/`, `file://` url, or `http(s)://` url) is not pas ``` "post_debug": true ``` -If you would like to see debug information about realtime bytes received from a client POST request, set `post_debug` to true. +If you would like to see debug information about realtime bytes received from a client POST request, set `post_debug` to `true`. +``` + "allow_guests": false +``` +If you would like to require registration, disabling guest mode, you can set `allow_guests` to `false`. Default is `true`; ``` "post_percentages": [ 0, 25, 50, 100] ``` diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js index e8e7df13..8c0a72ac 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js @@ -18,7 +18,6 @@ if (socket.ssid !== null) { if (challenge_response.toString(CryptoJS.enc.Base64) == client_challenge_response) { console.log(" * wtv-challenge-response success for " + filterSSID(socket.ssid)); wtvsec_login.PrepareTicket(); - if (!ssid_sessions[socket.ssid].getSessionData("registered") && !request_headers.query.guest_login) gourl = "wtv-register:/splash"; } else { console.log(" * wtv-challenge-response FAILED for " + filterSSID(socket.ssid)); @@ -32,12 +31,14 @@ if (socket.ssid !== null) { } } +if (!ssid_sessions[socket.ssid].getSessionData("registered") && (!request_headers.query.guest_login || !minisrv_config.config.allow_guests)) gourl = "wtv-register:/splash"; + if (gourl) { headers = `200 OK Connection: Close wtv-open-isp-disabled: false `; - if (!ssid_sessions[socket.ssid].getSessionData("registered") && !request_headers.query.guest_login) { + if (!ssid_sessions[socket.ssid].getSessionData("registered") && (!request_headers.query.guest_login || !minisrv_config.config.allow_guests)) { headers += `wtv-encrypted: true wtv-ticket: ${wtvsec_login.ticket_b64} ${getServiceString('wtv-register')} @@ -51,7 +52,7 @@ Content-type: text/html`; data = ''; } else { - if (request_headers.query.guest_login) { + if (request_headers.query.guest_login && minisrv_config.config.allow_guests) { var namerand = Math.floor(Math.random() * 100000); var nickname = (minisrv_config.config.service_name + '_' + namerand) var human_name = nickname; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js index 7b4abf46..4279e69a 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js @@ -1,4 +1,4 @@ -if (request_headers.query.noreg) { +if (request_headers.query.noreg && minisrv_config.config.allow_guests) { headers = `300 Moved Connection: Close wtv-noback-all: wtv-register: diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js index 7517c23b..cb93f026 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js @@ -59,11 +59,13 @@ The next screens will lead you through a quick setup process for using this serv var namerand = Math.floor(Math.random() * 100000); var nickname = (minisrv_config.config.service_name + '_' + namerand) var human_name = nickname; - data += ` +data += ` - - +`; +if (minisrv_config.config.allow_guests) data += ``; + +data += ` diff --git a/zefie_wtvp_minisrv/config.json b/zefie_wtvp_minisrv/config.json index b32aae9c..f1940591 100644 --- a/zefie_wtvp_minisrv/config.json +++ b/zefie_wtvp_minisrv/config.json @@ -14,7 +14,8 @@ "post_percentages": [ 0, 25, 50, 100 ], "verbosity": 2, "error_log_file": "errors.log", - "enable_lzpf_compression": false + "enable_lzpf_compression": false, + "allow_guests": true }, "services": { "wtv-head-waiter": { diff --git a/zefie_wtvp_minisrv/package.json b/zefie_wtvp_minisrv/package.json index 43ffdd8b..295d08ad 100644 --- a/zefie_wtvp_minisrv/package.json +++ b/zefie_wtvp_minisrv/package.json @@ -1,6 +1,6 @@ { "name": "zefie_wtvp_minisrv", - "version": "0.9.12", + "version": "0.9.13-dev", "description": "WebTV Service (WTVP) Emulation Server", "main": "app.js", "homepage": "https://github.com/zefie/zefie_wtvp_minisrv",