Also prevent sending unless safe integer

Synapse enforces this but I guess it doesn't hurt to also check here

Signed-off-by: Aaron Raimist <aaron@raim.ist>
This commit is contained in:
Aaron Raimist
2021-06-28 22:32:21 -05:00
parent 047180edc9
commit 55fb3d4e8e
+5 -5
View File
@@ -670,26 +670,26 @@ export class RoomState extends EventEmitter {
powerLevels = powerLevelsEvent.getContent();
eventsLevels = powerLevels.events || {};
if (Number.isFinite(powerLevels.state_default)) {
if (Number.isSafeInteger(powerLevels.state_default)) {
stateDefault = powerLevels.state_default;
} else {
stateDefault = 50;
}
const userPowerLevel = powerLevels.users && powerLevels.users[userId];
if (Number.isFinite(userPowerLevel)) {
if (Number.isSafeInteger(userPowerLevel)) {
powerLevel = userPowerLevel;
} else if (Number.isFinite(powerLevels.users_default)) {
} else if (Number.isSafeInteger(powerLevels.users_default)) {
powerLevel = powerLevels.users_default;
}
if (Number.isFinite(powerLevels.events_default)) {
if (Number.isSafeInteger(powerLevels.events_default)) {
eventsDefault = powerLevels.events_default;
}
}
let requiredLevel = state ? stateDefault : eventsDefault;
if (Number.isFinite(eventsLevels[eventType])) {
if (Number.isSafeInteger(eventsLevels[eventType])) {
requiredLevel = eventsLevels[eventType];
}
return powerLevel >= requiredLevel;