You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-25 05:23:13 +03:00
check whether notif level is undefined, because 0 is falsey (#651)
* check whether notif level is undefined, because `0` is falsey and it failed Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * improve number check for all m.room.power_levels related stuffs Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
committed by
Luke Barnard
parent
67876bab4c
commit
172044a1cb
@@ -329,7 +329,7 @@ RoomState.prototype._hasSufficientPowerLevelFor = function(action, powerLevel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let requiredLevel = 50;
|
let requiredLevel = 50;
|
||||||
if (powerLevels[action] !== undefined) {
|
if (utils.isNumber(powerLevels[action])) {
|
||||||
requiredLevel = powerLevels[action];
|
requiredLevel = powerLevels[action];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,18 +417,18 @@ RoomState.prototype._maySendEventOfType = function(eventType, userId, state) {
|
|||||||
power_levels = power_levels_event.getContent();
|
power_levels = power_levels_event.getContent();
|
||||||
events_levels = power_levels.events || {};
|
events_levels = power_levels.events || {};
|
||||||
|
|
||||||
if (power_levels.state_default !== undefined) {
|
if (utils.isNumber(power_levels.state_default)) {
|
||||||
state_default = power_levels.state_default;
|
state_default = power_levels.state_default;
|
||||||
} else {
|
} else {
|
||||||
state_default = 50;
|
state_default = 50;
|
||||||
}
|
}
|
||||||
if (power_levels.events_default !== undefined) {
|
if (utils.isNumber(power_levels.events_default)) {
|
||||||
events_default = power_levels.events_default;
|
events_default = power_levels.events_default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let required_level = state ? state_default : events_default;
|
let required_level = state ? state_default : events_default;
|
||||||
if (events_levels[eventType] !== undefined) {
|
if (utils.isNumber(events_levels[eventType])) {
|
||||||
required_level = events_levels[eventType];
|
required_level = events_levels[eventType];
|
||||||
}
|
}
|
||||||
return member.powerLevel >= required_level;
|
return member.powerLevel >= required_level;
|
||||||
@@ -455,7 +455,7 @@ RoomState.prototype.mayTriggerNotifOfType = function(notifLevelKey, userId) {
|
|||||||
powerLevelsEvent &&
|
powerLevelsEvent &&
|
||||||
powerLevelsEvent.getContent() &&
|
powerLevelsEvent.getContent() &&
|
||||||
powerLevelsEvent.getContent().notifications &&
|
powerLevelsEvent.getContent().notifications &&
|
||||||
powerLevelsEvent.getContent().notifications[notifLevelKey]
|
utils.isNumber(powerLevelsEvent.getContent().notifications[notifLevelKey])
|
||||||
) {
|
) {
|
||||||
notifLevel = powerLevelsEvent.getContent().notifications[notifLevelKey];
|
notifLevel = powerLevelsEvent.getContent().notifications[notifLevelKey];
|
||||||
}
|
}
|
||||||
|
|||||||
10
src/utils.js
10
src/utils.js
@@ -652,3 +652,13 @@ module.exports.inherits = function(ctor, superCtor) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the given value is a finite number without type-coercion
|
||||||
|
*
|
||||||
|
* @param {*} value the value to test
|
||||||
|
* @return {boolean} whether or not value is a finite number without type-coercion
|
||||||
|
*/
|
||||||
|
module.exports.isNumber = function(value) {
|
||||||
|
return typeof value === 'number' && isFinite(value);
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user