implemented a way to filter out roles that can't be assigned to permission, and disable permissions that are above the current power level of the user.

This commit is contained in:
Mauro Romito
2025-12-18 18:43:19 +01:00
committed by Mauro
parent f2fc164e2b
commit 88cd816392
18 changed files with 197 additions and 90 deletions
+11 -11
View File
@@ -30,16 +30,16 @@ class RoomPermissionsTests: XCTestCase {
let permissions = RoomPermissions(powerLevels: powerLevels)
// Then the permissions should be created with values mapped to the correct role.
XCTAssertEqual(permissions.ban, .administrator)
XCTAssertEqual(permissions.invite, .administrator)
XCTAssertEqual(permissions.kick, .administrator)
XCTAssertEqual(permissions.redact, .moderator)
XCTAssertEqual(permissions.eventsDefault, .moderator)
XCTAssertEqual(permissions.stateDefault, .moderator)
XCTAssertEqual(permissions.usersDefault, .user)
XCTAssertEqual(permissions.roomName, .user)
XCTAssertEqual(permissions.roomAvatar, .user)
XCTAssertEqual(permissions.roomTopic, .user)
XCTAssertEqual(permissions.spaceChild, .administrator)
XCTAssertEqual(permissions.ban, RoomRole.administrator.powerLevelValue)
XCTAssertEqual(permissions.invite, RoomRole.administrator.powerLevelValue)
XCTAssertEqual(permissions.kick, RoomRole.administrator.powerLevelValue)
XCTAssertEqual(permissions.redact, RoomRole.moderator.powerLevelValue)
XCTAssertEqual(permissions.eventsDefault, RoomRole.moderator.powerLevelValue)
XCTAssertEqual(permissions.stateDefault, RoomRole.moderator.powerLevelValue)
XCTAssertEqual(permissions.usersDefault, RoomRole.user.powerLevelValue)
XCTAssertEqual(permissions.roomName, RoomRole.user.powerLevelValue)
XCTAssertEqual(permissions.roomAvatar, RoomRole.user.powerLevelValue)
XCTAssertEqual(permissions.roomTopic, RoomRole.user.powerLevelValue)
XCTAssertEqual(permissions.spaceChild, RoomRole.administrator.powerLevelValue)
}
}