implemented the manage space rooms permission

This commit is contained in:
Mauro Romito
2025-11-12 16:15:48 +01:00
committed by Mauro
parent 3aa3bf1887
commit 6bda04ed04
9 changed files with 20 additions and 9 deletions
+2
View File
@@ -2306,6 +2306,8 @@ internal enum L10n {
internal static var screenRoomChangePermissionsInvitePeople: String { return L10n.tr("Localizable", "screen_room_change_permissions_invite_people") }
/// Manage space
internal static var screenRoomChangePermissionsManageSpace: String { return L10n.tr("Localizable", "screen_room_change_permissions_manage_space") }
/// Manage rooms
internal static var screenRoomChangePermissionsManageSpaceRooms: String { return L10n.tr("Localizable", "screen_room_change_permissions_manage_space_rooms") }
/// Manage members
internal static var screenRoomChangePermissionsMemberModeration: String { return L10n.tr("Localizable", "screen_room_change_permissions_member_moderation") }
/// Messages and content
@@ -64,6 +64,7 @@ extension RoomPowerLevelsValues {
usersDefault: 0,
roomName: 50,
roomAvatar: 50,
roomTopic: 50)
roomTopic: 50,
manageRoomsInSpace: 50)
}
}
@@ -112,6 +112,9 @@ extension RoomChangePermissionsScreenViewState {
case .manageSpace:
if isSpace {
settings[group] = [
RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsManageSpaceRooms,
value: currentPermissions.manageRoomsInSpace,
keyPath: \.manageRoomsInSpace),
RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsChangeSettings,
value: currentPermissions.stateDefault,
keyPath: \.stateDefault)
@@ -41,6 +41,7 @@ struct RoomPermissionsSetting: Identifiable {
case \.roomName: \.roomName
case \.roomAvatar: \.roomAvatar
case \.roomTopic: \.roomTopic
case \.manageRoomsInSpace: \.manageRoomsInSpace
default: fatalError("Unexpected key path: \(keyPath)")
}
}
@@ -67,6 +68,8 @@ struct RoomPermissions {
var roomAvatar: RoomRole
/// The level required to change the room's topic.
var roomTopic: RoomRole
/// The level required to add/remove childrens from a space.
var manageRoomsInSpace: RoomRole
}
extension RoomPermissions {
@@ -82,5 +85,6 @@ extension RoomPermissions {
roomName = RoomRole(powerLevelValue: powerLevels.roomName)
roomAvatar = RoomRole(powerLevelValue: powerLevels.roomAvatar)
roomTopic = RoomRole(powerLevelValue: powerLevels.roomTopic)
manageRoomsInSpace = RoomRole(powerLevelValue: powerLevels.manageRoomsInSpace)
}
}