From edcf331bf3796e86db61cd5e8257bf8bdc5cbb10 Mon Sep 17 00:00:00 2001 From: krille-chan Date: Mon, 15 Apr 2024 10:50:00 +0200 Subject: [PATCH] fix: canChangePowerLevel should return true for own user --- lib/src/user.dart | 8 ++++++-- test/user_test.dart | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/src/user.dart b/lib/src/user.dart index 5cd4563f..03b3881e 100644 --- a/lib/src/user.dart +++ b/lib/src/user.dart @@ -169,10 +169,14 @@ class User extends Event { room.canKick && powerLevel < room.ownPowerLevel; + @Deprecated('Use [canChangeUserPowerLevel] instead.') + bool get canChangePowerLevel => canChangeUserPowerLevel; + /// Whether the client is allowed to change the power level of this user. /// Please be aware that you can only set the power level to at least your own! - bool get canChangePowerLevel => - room.canChangePowerLevel && powerLevel < room.ownPowerLevel; + bool get canChangeUserPowerLevel => + room.canChangePowerLevel && + (powerLevel < room.ownPowerLevel || id == room.client.userID); @override bool operator ==(Object other) => (other is User && diff --git a/test/user_test.dart b/test/user_test.dart index c88b75c1..a00708a5 100644 --- a/test/user_test.dart +++ b/test/user_test.dart @@ -140,7 +140,7 @@ void main() { expect(user1.canKick, false); }); test('canChangePowerLevel', () async { - expect(user1.canChangePowerLevel, false); + expect(user1.canChangeUserPowerLevel, false); }); test('mention', () async { expect(user1.mention, '@[Alice M]');