Clean up rules.
This commit is contained in:
parent
526459a9e0
commit
8b9fd7ddcb
1 changed files with 24 additions and 25 deletions
|
@ -131,26 +131,19 @@ function textForRoomNameEvent(ev) {
|
||||||
|
|
||||||
function textForServerACLEvent(ev) {
|
function textForServerACLEvent(ev) {
|
||||||
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||||
let prev = ev.getPrevContent();
|
let prev_content = ev.getPrevContent();
|
||||||
let current = ev.getContent();
|
let current = ev.getContent();
|
||||||
let text = "";
|
let text = "";
|
||||||
let changes = [];
|
let changes = [];
|
||||||
if (prev == undefined) {
|
let prev = {
|
||||||
text = `${senderDisplayName} set server ACLs for this room:`;
|
deny: Array.isArray(prev_content.deny) ? prev_content.deny : [],
|
||||||
prev = {
|
allow: Array.isArray(prev_content.allow) ? prev_content.allow : [],
|
||||||
deny: [],
|
allow_ip_literals: !(prev_content.allow_ip_literals === false)
|
||||||
allow: [],
|
}
|
||||||
allow_ip_literals: true
|
if (prev.deny.length === 0 && prev.allow.length === 0) {
|
||||||
}
|
text = `${senderDisplayName} set server ACLs for this room: `;
|
||||||
} else {
|
} else {
|
||||||
text = `${senderDisplayName} changed the server ACLs for this room:`
|
text = `${senderDisplayName} changed the server ACLs for this room: `;
|
||||||
if (!Array.isArray(prev.allow)){
|
|
||||||
prev.allow = []
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Array.isArray(prev.deny)){
|
|
||||||
prev.deny = []
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Array.isArray(current.allow)){
|
if (!Array.isArray(current.allow)){
|
||||||
|
@ -161,30 +154,36 @@ function textForServerACLEvent(ev) {
|
||||||
current.deny = []
|
current.deny = []
|
||||||
}
|
}
|
||||||
|
|
||||||
const bannedServers = current.deny.filter((bannedSrv) => !prev.deny.includes(bannedSrv));
|
const bannedServers = current.deny.filter((srv) => typeof(srv) === 'string' && !prev.deny.includes(srv));
|
||||||
const unbannedServers = prev.deny.filter((bannedSrv) => !current.deny.includes(bannedSrv));
|
const unbannedServers = prev.deny.filter((srv) => typeof(srv) === 'string' && !current.deny.includes(srv));
|
||||||
const allowedServers = current.allow.filter((bannedSrv) => !prev.allow.includes(bannedSrv));
|
const allowedServers = current.allow.filter((srv) => typeof(srv) === 'string' && !prev.allow.includes(srv));
|
||||||
const unallowedServers = prev.allow.filter((bannedSrv) => !current.allow.includes(bannedSrv));
|
const unallowedServers = prev.allow.filter((srv) => typeof(srv) === 'string' && !current.allow.includes(srv));
|
||||||
|
|
||||||
|
console.log(bannedServers,unbannedServers,allowedServers,unallowedServers);
|
||||||
|
|
||||||
if (bannedServers.length > 0) {
|
if (bannedServers.length > 0) {
|
||||||
changes.push(`Servers matching ${bannedServers.join(",")} are now banned`);
|
changes.push(`Servers matching ${bannedServers.join(",")} are now banned.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unbannedServers.length > 0) {
|
if (unbannedServers.length > 0) {
|
||||||
changes.push(`Servers matching ${unbannedServers.join(",")} are no longer banned`);
|
changes.push(`Servers matching ${unbannedServers.join(",")} were removed from the ban list.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allowedServers.length > 0) {
|
if (allowedServers.length > 0) {
|
||||||
changes.push(`Servers matching ${allowedServers.join(",")} are now allowed`);
|
changes.push(`Servers matching ${allowedServers.join(",")} are now allowed.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unallowedServers.length > 0) {
|
if (unallowedServers.length > 0) {
|
||||||
changes.push(`Servers matching ${unallowedServers.join(",")} are no longer allowed`);
|
changes.push(`Servers matching ${unallowedServers.join(",")} were removed from the allowed list.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prev.allow_ip_literals !== current.allow_ip_literals) {
|
if (prev.allow_ip_literals !== current.allow_ip_literals) {
|
||||||
const allowban = current.allow_ip_literals ? "allowed" : "banned";
|
const allowban = current.allow_ip_literals ? "allowed" : "banned";
|
||||||
changes.push(`Participating from a server using ip literals is now ${allowban}`);
|
changes.push(`Participating from a server using an IP literal hostname is now ${allowban}.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (current.allow.length === 0) {
|
||||||
|
changes = ["Everyone is banned! 🎉"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return text + changes.join("\n");
|
return text + changes.join("\n");
|
||||||
|
|
Loading…
Reference in a new issue