mirror of https://github.com/vector-im/riot-web
Make the ACL update message less noisy
Fixes https://github.com/vector-im/element-web/issues/14216 Copy is not reviewed as of writing.pull/21833/head
parent
4425ae30e9
commit
f9029cd224
|
@ -198,59 +198,30 @@ function textForRelatedGroupsEvent(ev) {
|
||||||
function textForServerACLEvent(ev) {
|
function textForServerACLEvent(ev) {
|
||||||
const senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
const senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||||
const prevContent = ev.getPrevContent();
|
const prevContent = ev.getPrevContent();
|
||||||
const changes = [];
|
|
||||||
const current = ev.getContent();
|
const current = ev.getContent();
|
||||||
const prev = {
|
const prev = {
|
||||||
deny: Array.isArray(prevContent.deny) ? prevContent.deny : [],
|
deny: Array.isArray(prevContent.deny) ? prevContent.deny : [],
|
||||||
allow: Array.isArray(prevContent.allow) ? prevContent.allow : [],
|
allow: Array.isArray(prevContent.allow) ? prevContent.allow : [],
|
||||||
allow_ip_literals: !(prevContent.allow_ip_literals === false),
|
allow_ip_literals: !(prevContent.allow_ip_literals === false),
|
||||||
};
|
};
|
||||||
|
|
||||||
let text = "";
|
let text = "";
|
||||||
if (prev.deny.length === 0 && prev.allow.length === 0) {
|
if (prev.deny.length === 0 && prev.allow.length === 0) {
|
||||||
text = `${senderDisplayName} set server ACLs for this room: `;
|
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(current.allow)) {
|
if (!Array.isArray(current.allow)) {
|
||||||
current.allow = [];
|
current.allow = [];
|
||||||
}
|
}
|
||||||
/* If we know for sure everyone is banned, don't bother showing the diff view */
|
|
||||||
|
// If we know for sure everyone is banned, mark the room as obliterated
|
||||||
if (current.allow.length === 0) {
|
if (current.allow.length === 0) {
|
||||||
return text + "🎉 All servers are banned from participating! This room can no longer be used.";
|
return text + "🎉 All servers are banned from participating! This room can no longer be used.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Array.isArray(current.deny)) {
|
return text.trim();
|
||||||
current.deny = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
const bannedServers = current.deny.filter((srv) => typeof(srv) === 'string' && !prev.deny.includes(srv));
|
|
||||||
const unbannedServers = prev.deny.filter((srv) => typeof(srv) === 'string' && !current.deny.includes(srv));
|
|
||||||
const allowedServers = current.allow.filter((srv) => typeof(srv) === 'string' && !prev.allow.includes(srv));
|
|
||||||
const unallowedServers = prev.allow.filter((srv) => typeof(srv) === 'string' && !current.allow.includes(srv));
|
|
||||||
|
|
||||||
if (bannedServers.length > 0) {
|
|
||||||
changes.push(`Servers matching ${bannedServers.join(", ")} are now banned.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (unbannedServers.length > 0) {
|
|
||||||
changes.push(`Servers matching ${unbannedServers.join(", ")} were removed from the ban list.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allowedServers.length > 0) {
|
|
||||||
changes.push(`Servers matching ${allowedServers.join(", ")} are now allowed.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (unallowedServers.length > 0) {
|
|
||||||
changes.push(`Servers matching ${unallowedServers.join(", ")} were removed from the allowed list.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (prev.allow_ip_literals !== current.allow_ip_literals) {
|
|
||||||
const allowban = current.allow_ip_literals ? "allowed" : "banned";
|
|
||||||
changes.push(`Participating from a server using an IP literal hostname is now ${allowban}.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return text + changes.join(" ");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function textForMessageEvent(ev) {
|
function textForMessageEvent(ev) {
|
||||||
|
|
Loading…
Reference in New Issue