diff --git a/lib/pangea/extensions/pangea_room_extension/children_and_parents_extension.dart b/lib/pangea/extensions/pangea_room_extension/children_and_parents_extension.dart index 2f0596908..f5a2bf8de 100644 --- a/lib/pangea/extensions/pangea_room_extension/children_and_parents_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/children_and_parents_extension.dart @@ -131,7 +131,7 @@ extension ChildrenAndParentsRoomExtension on Room { spaceMode = child?.isSpace ?? spaceMode; // get the bool for adding chats to spaces - final bool canAddChild = _canIAddSpaceChild(child, spaceMode: spaceMode); + final bool canAddChild = child?.isRoomAdmin ?? true; if (!spaceMode) return canAddChild; // if adding space to a space, check if the child is an ancestor diff --git a/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart b/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart index f0094f994..edd32d96d 100644 --- a/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/pangea_room_extension.dart @@ -291,12 +291,6 @@ extension PangeaRoom on Room { bool get canDelete => _canDelete; - /// Determines whether user has permission to add child room to this - /// Can add child if, and only if, is admin of child - bool canIAddSpaceChild(Room? room, {bool spaceMode = false}) { - return _canIAddSpaceChild(room, spaceMode: spaceMode); - } - bool get canIAddSpaceParents => _canIAddSpaceParents; bool pangeaCanSendEvent(String eventType) => _pangeaCanSendEvent(eventType); diff --git a/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart b/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart index a27526a2b..97ccc24ac 100644 --- a/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart @@ -68,19 +68,17 @@ extension AnalyticsRoomExtension on Room { } if (spaceChildren.any((sc) => sc.roomId == analyticsRoom.id)) return; - if (canIAddSpaceChild(null)) { - try { - await setSpaceChild(analyticsRoom.id); - } catch (err) { - debugPrint( - "Failed to add analytics room ${analyticsRoom.id} for student to space $id", - ); - Sentry.addBreadcrumb( - Breadcrumb( - message: "Failed to add analytics room to space $id", - ), - ); - } + try { + await setSpaceChild(analyticsRoom.id); + } catch (err) { + debugPrint( + "Failed to add analytics room ${analyticsRoom.id} for student to space $id", + ); + Sentry.addBreadcrumb( + Breadcrumb( + message: "Failed to add analytics room to space $id", + ), + ); } } diff --git a/lib/pangea/extensions/pangea_room_extension/user_permissions_extension.dart b/lib/pangea/extensions/pangea_room_extension/user_permissions_extension.dart index a61b459c6..d066bf84f 100644 --- a/lib/pangea/extensions/pangea_room_extension/user_permissions_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/user_permissions_extension.dart @@ -78,24 +78,10 @@ extension UserPermissionsRoomExtension on Room { bool get _canDelete => isSpaceAdmin; - bool _canIAddSpaceChild(Room? room, {bool spaceMode = false}) { - if (!isSpace) { - ErrorHandler.logError( - m: "should not call canIAddSpaceChildren on non-space room. Room id: $id", - data: toJson(), - s: StackTrace.current, - ); - return false; - } - - // Can add child if, and only if, admin of child - return room?.isRoomAdmin ?? true; - } - bool get _canIAddSpaceParents => _isRoomAdmin || pangeaCanSendEvent(EventTypes.SpaceParent); - //overriding the default canSendEvent to check power levels + // Overriding the default canSendEvent to check power levels bool _pangeaCanSendEvent(String eventType) { final powerLevelsMap = getState(EventTypes.RoomPowerLevels)?.content; if (powerLevelsMap == null) return 0 <= ownPowerLevel; diff --git a/lib/pangea/widgets/class/add_space_toggles.dart b/lib/pangea/widgets/class/add_space_toggles.dart index c7d4fba71..b8cd622a2 100644 --- a/lib/pangea/widgets/class/add_space_toggles.dart +++ b/lib/pangea/widgets/class/add_space_toggles.dart @@ -79,7 +79,7 @@ class AddToSpaceState extends State { if (widget.activeSpaceId != null) { final activeSpace = Matrix.of(context).client.getRoomById(widget.activeSpaceId!); - if (activeSpace != null && activeSpace.canIAddSpaceChild(null)) { + if (activeSpace != null) { parent = activeSpace; } else { ErrorHandler.logError(