summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/16907.misc1
-rw-r--r--synapse/handlers/room.py2
-rw-r--r--tests/rest/client/test_rooms.py18
3 files changed, 20 insertions, 1 deletions
diff --git a/changelog.d/16907.misc b/changelog.d/16907.misc
new file mode 100644
index 0000000000..e3a7fad447
--- /dev/null
+++ b/changelog.d/16907.misc
@@ -0,0 +1 @@
+Update power level default for public rooms (#16907).
\ No newline at end of file
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 3278426ca3..8b5ffb135e 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -151,7 +151,7 @@ class RoomCreationHandler:
                 "history_visibility": HistoryVisibility.SHARED,
                 "original_invitees_have_ops": False,
                 "guest_can_join": False,
-                "power_level_content_override": {},
+                "power_level_content_override": {EventTypes.CallInvite: 50},
             },
         }
 
diff --git a/tests/rest/client/test_rooms.py b/tests/rest/client/test_rooms.py
index d2f2ded487..1364615085 100644
--- a/tests/rest/client/test_rooms.py
+++ b/tests/rest/client/test_rooms.py
@@ -93,6 +93,7 @@ class RoomPermissionsTestCase(RoomBase):
     rmcreator_id = "@notme:red"
 
     def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
+        self.store_controllers = hs.get_storage_controllers()
         self.helper.auth_user_id = self.rmcreator_id
         # create some rooms under the name rmcreator_id
         self.uncreated_rmid = "!aa:test"
@@ -482,6 +483,23 @@ class RoomPermissionsTestCase(RoomBase):
             expect_code=HTTPStatus.OK,
         )
 
+    def test_default_call_invite_power_level(self) -> None:
+        pl_event = self.get_success(
+            self.store_controllers.state.get_current_state_event(
+                self.created_public_rmid, EventTypes.PowerLevels, ""
+            )
+        )
+        assert pl_event is not None
+        self.assertEqual(50, pl_event.content.get("m.call.invite"))
+
+        private_pl_event = self.get_success(
+            self.store_controllers.state.get_current_state_event(
+                self.created_rmid, EventTypes.PowerLevels, ""
+            )
+        )
+        assert private_pl_event is not None
+        self.assertEqual(None, private_pl_event.content.get("m.call.invite"))
+
 
 class RoomStateTestCase(RoomBase):
     """Tests /rooms/$room_id/state."""