Fix roleOf extension. Creator are Owner Role only if privilegedCreatorRole is true.

This commit is contained in:
Benoit Marty 2025-11-20 17:29:01 +01:00
parent fbddfbdb0e
commit 729e5e9218
3 changed files with 82 additions and 3 deletions

View file

@ -23,12 +23,12 @@ fun RoomInfo.getAvatarData(size: AvatarSize) = AvatarData(
/**
* Returns the role of the user in the room.
* If the user is a creator, returns [RoomMember.Role.Owner].
* If the user is a creator and [RoomInfo.privilegedCreatorRole] is true, returns [RoomMember.Role.Owner].
* Otherwise, checks the power levels and returns the corresponding role.
* If no specific power level is set for the user, defaults to [RoomMember.Role.User].
*/
fun RoomInfo.roleOf(userId: UserId): RoomMember.Role {
return if (creators.contains(userId)) {
return if (privilegedCreatorRole && creators.contains(userId)) {
RoomMember.Role.Owner(isCreator = true)
} else {
roomPowerLevels?.roleOf(userId) ?: RoomMember.Role.User