Restore permissions to creator and display them as owners in the list (#4369)

* restore permissions to creator and display them as owners in the list

* improved the code to use actually 5 roles in the app to distinguish a real creator from an owner
This commit is contained in:
Mauro
2025-07-31 16:52:55 +02:00
committed by GitHub
parent 496c29ae36
commit 731d60b6e9
29 changed files with 205 additions and 137 deletions
@@ -26,16 +26,6 @@ struct RoomPowerLevelsProxy: RoomPowerLevelsProxyProtocol {
powerLevels.userPowerLevels()
}
func suggestedRole(forUser userID: String) -> RoomMemberRole {
do {
let powerLevelValue = powerLevels.userPowerLevels()[userID] ?? values.usersDefault
return try suggestedRoleForPowerLevel(powerLevel: .value(value: powerLevelValue))
} catch {
MXLog.error("Falied to get suggested role for user: \(error)")
return .user
}
}
func canOwnUser(sendMessage messageType: MessageLikeEventType) -> Bool {
powerLevels.canOwnUserSendMessage(message: messageType)
}
@@ -76,6 +66,10 @@ struct RoomPowerLevelsProxy: RoomPowerLevelsProxyProtocol {
powerLevels.canOwnUserSendState(stateEvent: .callMember)
}
func canOwnUserEditRolesAndPermissions() -> Bool {
powerLevels.canOwnUserSendState(stateEvent: .roomPowerLevels)
}
func canUser(userID: String, sendMessage messageType: MessageLikeEventType) -> Result<Bool, RoomProxyError> {
do {
return try .success(powerLevels.canUserSendMessage(userId: userID, message: messageType))