mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-08 04:34:58 -04:00
Allow admins to proactively block rooms (#11228)
Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com> Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
This commit is contained in:
parent
a19d01c3d9
commit
b6f4d122ef
6 changed files with 102 additions and 20 deletions
|
@ -14,9 +14,12 @@
|
|||
|
||||
import json
|
||||
import urllib.parse
|
||||
from http import HTTPStatus
|
||||
from typing import List, Optional
|
||||
from unittest.mock import Mock
|
||||
|
||||
from parameterized import parameterized
|
||||
|
||||
import synapse.rest.admin
|
||||
from synapse.api.constants import EventTypes, Membership
|
||||
from synapse.api.errors import Codes
|
||||
|
@ -281,6 +284,31 @@ class DeleteRoomTestCase(unittest.HomeserverTestCase):
|
|||
self._is_blocked(self.room_id, expect=True)
|
||||
self._has_no_members(self.room_id)
|
||||
|
||||
@parameterized.expand([(True,), (False,)])
|
||||
def test_block_unknown_room(self, purge: bool) -> None:
|
||||
"""
|
||||
We can block an unknown room. In this case, the `purge` argument
|
||||
should be ignored.
|
||||
"""
|
||||
room_id = "!unknown:test"
|
||||
|
||||
# The room isn't already in the blocked rooms table
|
||||
self._is_blocked(room_id, expect=False)
|
||||
|
||||
# Request the room be blocked.
|
||||
channel = self.make_request(
|
||||
"DELETE",
|
||||
f"/_synapse/admin/v1/rooms/{room_id}",
|
||||
{"block": True, "purge": purge},
|
||||
access_token=self.admin_user_tok,
|
||||
)
|
||||
|
||||
# The room is now blocked.
|
||||
self.assertEqual(
|
||||
HTTPStatus.OK, int(channel.result["code"]), msg=channel.result["body"]
|
||||
)
|
||||
self._is_blocked(room_id)
|
||||
|
||||
def test_shutdown_room_consent(self):
|
||||
"""Test that we can shutdown rooms with local users who have not
|
||||
yet accepted the privacy policy. This used to fail when we tried to
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue