fix: Missing type check in power level calculation

This commit is contained in:
Christian Pauly 2022-04-03 08:22:53 +02:00
parent 245246460d
commit cdd6111ce1
1 changed files with 6 additions and 3 deletions

View File

@ -1559,7 +1559,8 @@ class Room {
} }
bool _hasPermissionFor(String action) { bool _hasPermissionFor(String action) {
final pl = getState(EventTypes.RoomPowerLevels)?.content[action]; final pl =
getState(EventTypes.RoomPowerLevels)?.content.tryGet<int>(action);
if (pl == null) { if (pl == null) {
return true; return true;
} }
@ -1589,8 +1590,10 @@ class Room {
bool get canChangePowerLevel => canSendEvent(EventTypes.RoomPowerLevels); bool get canChangePowerLevel => canSendEvent(EventTypes.RoomPowerLevels);
bool canSendEvent(String eventType) { bool canSendEvent(String eventType) {
final pl = final pl = getState(EventTypes.RoomPowerLevels)
getState(EventTypes.RoomPowerLevels)?.content['events']?[eventType]; ?.content
.tryGetMap<String, dynamic>('events')
?.tryGet<int>(eventType);
if (pl == null) { if (pl == null) {
return eventType == EventTypes.Message return eventType == EventTypes.Message
? canSendDefaultMessages ? canSendDefaultMessages