use nesting instead of short-circuited && operator
parent
b8c6bed906
commit
a7db42c6cf
|
@ -146,29 +146,31 @@ export class RoomPermalinkCreator {
|
||||||
|
|
||||||
_updateHighestPlUser() {
|
_updateHighestPlUser() {
|
||||||
const plEvent = this._room.currentState.getStateEvents("m.room.power_levels", "");
|
const plEvent = this._room.currentState.getStateEvents("m.room.power_levels", "");
|
||||||
const content = plEvent && plEvent.getContent();
|
if (plEvent) {
|
||||||
if (content) {
|
const content = plEvent.getContent();
|
||||||
const users = content.users;
|
if (content) {
|
||||||
if (users) {
|
const users = content.users;
|
||||||
const entries = Object.entries(users);
|
if (users) {
|
||||||
const allowedEntries = entries.filter(([userId]) => {
|
const entries = Object.entries(users);
|
||||||
const member = this._room.getMember(userId);
|
const allowedEntries = entries.filter(([userId]) => {
|
||||||
if (!member || member.membership !== "join") {
|
const member = this._room.getMember(userId);
|
||||||
return false;
|
if (!member || member.membership !== "join") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const serverName = getServerName(userId);
|
||||||
|
return !isHostnameIpAddress(serverName) &&
|
||||||
|
!isHostInRegex(serverName, this._bannedHostsRegexps) &&
|
||||||
|
isHostInRegex(serverName, this._allowedHostsRegexps);
|
||||||
|
});
|
||||||
|
const maxEntry = allowedEntries.reduce((max, entry) => {
|
||||||
|
return (entry[1] > max[1]) ? entry : max;
|
||||||
|
}, [null, 0]);
|
||||||
|
const [userId, powerLevel] = maxEntry;
|
||||||
|
// object wasn't empty, and max entry wasn't a demotion from the default
|
||||||
|
if (userId !== null && powerLevel >= 50) {
|
||||||
|
this._highestPlUserId = userId;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
const serverName = getServerName(userId);
|
|
||||||
return !isHostnameIpAddress(serverName) &&
|
|
||||||
!isHostInRegex(serverName, this._bannedHostsRegexps) &&
|
|
||||||
isHostInRegex(serverName, this._allowedHostsRegexps);
|
|
||||||
});
|
|
||||||
const maxEntry = allowedEntries.reduce((max, entry) => {
|
|
||||||
return (entry[1] > max[1]) ? entry : max;
|
|
||||||
}, [null, 0]);
|
|
||||||
const [userId, powerLevel] = maxEntry;
|
|
||||||
// object wasn't empty, and max entry wasn't a demotion from the default
|
|
||||||
if (userId !== null && powerLevel >= 50) {
|
|
||||||
this._highestPlUserId = userId;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue