v0.9.33
- numerous bug fixes - wtv-mail system - user account updates - viewergen alpha (experimental webtv viewer patcher on pc_service) - implement wtv-favorites with huge help from @JarHead4 - add wtv-ticket store api - Bump vm2 from 3.9.5 to 3.9.7 in /zefie_wtvp_minisrv - fix bf0app default rom - Add wtv-1800 service to wtv-1800:/noflash - handle webtvism: - allow get/post variables to be the same name multiple times - rather than overwrite, the server will now change the variable from a string to an array. - Rewrite script processing a bit - Instead of using eval() we now use a proper VM Context - As a result, any scripting errors will now give a more useful filename and line number. - However, some things may break, if they are dependant on variables we are not allowing in the context. - BREAKING CHANGES: - `ssid_sessions[socket.ssid]` is now `session_data` - `require` is no longer allowed in user scripts - add star service - change how we handle modules for services in the VM - fixed wtv-disk:/sync always failed the first time - implement production-like wtv-star handling (when a service port becomes unavailable, it requests the url over the wtv-star port to show an error page) - renamed WTVDownloadList.js to WTVDisk.js - a bit more work on WTVNews (created class) - probably more stuff I can't remember
This commit is contained in:
108
zefie_wtvp_minisrv/ServiceVault/wtv-admin/unban.js
Normal file
108
zefie_wtvp_minisrv/ServiceVault/wtv-admin/unban.js
Normal file
@@ -0,0 +1,108 @@
|
||||
var minisrv_service_file = true;
|
||||
|
||||
var WTVAdmin = require(classPath + "/WTVAdmin.js");
|
||||
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
|
||||
var auth = wtva.isAuthorized();
|
||||
var ssids_removed = [];
|
||||
if (auth === true) {
|
||||
var password = null;
|
||||
if (request_headers.Authorization) {
|
||||
var authheader = request_headers.Authorization.split(' ');
|
||||
if (authheader[0] == "Basic") {
|
||||
password = Buffer.from(authheader[1], 'base64').toString();
|
||||
if (password) password = password.split(':')[1];
|
||||
}
|
||||
}
|
||||
if (wtva.checkPassword(password)) {
|
||||
if (request_headers.query.unban_ssid) {
|
||||
var config_changed = false;
|
||||
var fake_config = wtvshared.getUserConfig();
|
||||
if (!fake_config.config) fake_config.config = {};
|
||||
if (!fake_config.config.ssid_block_list) fake_config.config.ssid_block_list = [];
|
||||
if (typeof request_headers.query.unban_ssid === 'string') {
|
||||
Object.keys(fake_config.config.ssid_block_list).forEach(function (k) {
|
||||
if (fake_config.config.ssid_block_list[k] == request_headers.query.unban_ssid) {
|
||||
fake_config.config.ssid_block_list.splice(k, 1);
|
||||
ssids_removed.push(request_headers.query.unban_ssid)
|
||||
config_changed = true;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Object.keys(fake_config.config.ssid_block_list).forEach(function (k) {
|
||||
Object.keys(request_headers.query.unban_ssid).forEach(function (j) {
|
||||
if (fake_config.config.ssid_block_list[k] == request_headers.query.unban_ssid[j]) {
|
||||
fake_config.config.ssid_block_list.splice(k,1);
|
||||
ssids_removed.push(request_headers.query.unban_ssid[j])
|
||||
config_changed = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
if (config_changed) {
|
||||
wtvshared.writeToUserConfig(fake_config);
|
||||
minisrv_config = reloadConfig();
|
||||
}
|
||||
}
|
||||
headers = `200 OK
|
||||
Content-Type: text/html
|
||||
wtv-expire-all: wtv-admin:/unban`;
|
||||
if (request_headers.query.unban_ssid) {
|
||||
headers += "\nwtv-noback-all: wtv-admin:/unban";
|
||||
}
|
||||
data = `<html>
|
||||
<body>
|
||||
<display nosave nosend>
|
||||
<title>${minisrv_config.config.service_name} Admin Tricks</title>
|
||||
<sidebar width=20%>
|
||||
<img src="wtv-admin:/images/nuke_inverted.gif">
|
||||
</sidebar>
|
||||
<body bgcolor="#0a0a0a" text="#CC1111" link="#ff55ff" vlink="#ff55ff" vspace=0>
|
||||
<br>
|
||||
<br>
|
||||
<h1>${minisrv_config.config.service_name} Admin Tricks</h1>
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=3 height=6>
|
||||
<h3>Unban an SSID</h3>`;
|
||||
if (minisrv_config.config.ssid_block_list) {
|
||||
if (minisrv_config.config.ssid_block_list.length > 0) {
|
||||
data += '<form action="wtv-admin:/unban" method="POST">';
|
||||
data += '<select name="unban_ssid" multiple size="8">';
|
||||
Object.keys(minisrv_config.config.ssid_block_list).forEach(function (k) {
|
||||
var ssid = minisrv_config.config.ssid_block_list[k];
|
||||
data += "<option value=\"" + ssid + "\">" + ssid + "</option>\n";
|
||||
});
|
||||
data += '</select><br><input type="submit" value="Unban SSID(s)"></form>';
|
||||
} else {
|
||||
data += "No SSIDs are in the ban list.<br><br>";
|
||||
}
|
||||
} else {
|
||||
data += "No SSIDs are in the ban list.<br><br>";
|
||||
}
|
||||
if (ssids_removed.length > 0) {
|
||||
if (config_changed) {
|
||||
data += "<strong>SSID(s) " + ssids_removed + " removed from the ban list.</strong><br><br>";
|
||||
}
|
||||
}
|
||||
data += `
|
||||
<br>
|
||||
<br>
|
||||
<tr>
|
||||
</table>
|
||||
<p align="right">
|
||||
<a href="client:goback">Go Back</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
} else {
|
||||
var errpage = wtvshared.doErrorPage(401, "Please enter the administration password, you can leave the username blank.");
|
||||
headers = errpage[0];
|
||||
data = errpage[1];
|
||||
}
|
||||
} else {
|
||||
var errpage = wtvshared.doErrorPage(403, auth);
|
||||
headers = errpage[0];
|
||||
data = errpage[1];
|
||||
}
|
||||
Reference in New Issue
Block a user