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
@@ -623,6 +623,7 @@
"screen_room_single_knock_request_title" = "%1$@ wants to join this room"; "screen_room_single_knock_request_title" = "%1$@ wants to join this room";
"screen_room_change_permissions_change_settings" = "Change settings"; "screen_room_change_permissions_change_settings" = "Change settings";
"screen_room_change_permissions_manage_space" = "Manage space"; "screen_room_change_permissions_manage_space" = "Manage space";
"screen_room_change_permissions_manage_space_rooms" = "Manage rooms";
"screen_room_change_permissions_title" = "Permissions"; "screen_room_change_permissions_title" = "Permissions";
"screen_room_change_role_administrators_or_owners_title" = "Edit Admins or Owners"; "screen_room_change_role_administrators_or_owners_title" = "Edit Admins or Owners";
"screen_room_details_pinned_events_row_title" = "Pinned messages"; "screen_room_details_pinned_events_row_title" = "Pinned messages";
+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") } internal static var screenRoomChangePermissionsInvitePeople: String { return L10n.tr("Localizable", "screen_room_change_permissions_invite_people") }
/// Manage space /// Manage space
internal static var screenRoomChangePermissionsManageSpace: String { return L10n.tr("Localizable", "screen_room_change_permissions_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 /// Manage members
internal static var screenRoomChangePermissionsMemberModeration: String { return L10n.tr("Localizable", "screen_room_change_permissions_member_moderation") } internal static var screenRoomChangePermissionsMemberModeration: String { return L10n.tr("Localizable", "screen_room_change_permissions_member_moderation") }
/// Messages and content /// Messages and content
@@ -64,6 +64,7 @@ extension RoomPowerLevelsValues {
usersDefault: 0, usersDefault: 0,
roomName: 50, roomName: 50,
roomAvatar: 50, roomAvatar: 50,
roomTopic: 50) roomTopic: 50,
manageRoomsInSpace: 50)
} }
} }
@@ -112,6 +112,9 @@ extension RoomChangePermissionsScreenViewState {
case .manageSpace: case .manageSpace:
if isSpace { if isSpace {
settings[group] = [ settings[group] = [
RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsManageSpaceRooms,
value: currentPermissions.manageRoomsInSpace,
keyPath: \.manageRoomsInSpace),
RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsChangeSettings, RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsChangeSettings,
value: currentPermissions.stateDefault, value: currentPermissions.stateDefault,
keyPath: \.stateDefault) keyPath: \.stateDefault)
@@ -41,6 +41,7 @@ struct RoomPermissionsSetting: Identifiable {
case \.roomName: \.roomName case \.roomName: \.roomName
case \.roomAvatar: \.roomAvatar case \.roomAvatar: \.roomAvatar
case \.roomTopic: \.roomTopic case \.roomTopic: \.roomTopic
case \.manageRoomsInSpace: \.manageRoomsInSpace
default: fatalError("Unexpected key path: \(keyPath)") default: fatalError("Unexpected key path: \(keyPath)")
} }
} }
@@ -67,6 +68,8 @@ struct RoomPermissions {
var roomAvatar: RoomRole var roomAvatar: RoomRole
/// The level required to change the room's topic. /// The level required to change the room's topic.
var roomTopic: RoomRole var roomTopic: RoomRole
/// The level required to add/remove childrens from a space.
var manageRoomsInSpace: RoomRole
} }
extension RoomPermissions { extension RoomPermissions {
@@ -82,5 +85,6 @@ extension RoomPermissions {
roomName = RoomRole(powerLevelValue: powerLevels.roomName) roomName = RoomRole(powerLevelValue: powerLevels.roomName)
roomAvatar = RoomRole(powerLevelValue: powerLevels.roomAvatar) roomAvatar = RoomRole(powerLevelValue: powerLevels.roomAvatar)
roomTopic = RoomRole(powerLevelValue: powerLevels.roomTopic) roomTopic = RoomRole(powerLevelValue: powerLevels.roomTopic)
manageRoomsInSpace = RoomRole(powerLevelValue: powerLevels.manageRoomsInSpace)
} }
} }
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:16d9ec76f9858d1a0f009d67c7a7bbb1bd888db2dfb0f47e36a7583b73b43ecf oid sha256:5c4c11fb8d667addfc78f04bd42671b9a34f7cc240229c568a5fe21602602509
size 154684 size 163476
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:c33c79621a7f57b6a9e655db9c4b3418b61cfa2ba6e665e2b777ff1435a58956 oid sha256:5ec6b6455a5da1bcf0fd5fc7c16a1165ff8db829eca2c77f9d23fc60326f9de5
size 176304 size 187167
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:342d2a1a88dd1a2dd12cf998575a7361e90babee7c40d247417fc81fa89eb29a oid sha256:215901f4c359599ccdb9e91b2a0b44b0d5187568995f8ec74e321925cfcd8327
size 98108 size 106254
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6ea6ff411406dfeb4ec38fdbc81cb765f169294c7498438623f85d68bd1e1ff0 oid sha256:65e816731647639a7a6bd07ca2d17b67036389805bf02f882f6e548e029928d5
size 131091 size 143652