mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-10-01 11:49:51 -04:00
491f0dab1b
The Delete Room admin API allows server admins to remove rooms from server
and block these rooms.
`DELETE /_synapse/admin/v1/rooms/<room_id>`
It is a combination and improvement of "[Shutdown room](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/shutdown_room.md)" and "[Purge room](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/purge_room.md)" API.
Fixes: #6425
It also fixes a bug in [synapse/storage/data_stores/main/room.py](synapse/storage/data_stores/main/room.py) in ` get_room_with_stats`.
It should return `None` if the room is unknown. But it returns an `IndexError`.
901b1fa561/synapse/storage/data_stores/main/room.py (L99-L105)
Related to:
- #5575
- https://github.com/Awesome-Technologies/synapse-admin/issues/17
Signed-off-by: Dirk Klimpel dirk@klimpel.org
75 lines
2.6 KiB
Markdown
75 lines
2.6 KiB
Markdown
# Shutdown room API
|
|
|
|
Shuts down a room, preventing new joins and moves local users and room aliases automatically
|
|
to a new room. The new room will be created with the user specified by the
|
|
`new_room_user_id` parameter as room administrator and will contain a message
|
|
explaining what happened. Users invited to the new room will have power level
|
|
-10 by default, and thus be unable to speak. The old room's power levels will be changed to
|
|
disallow any further invites or joins.
|
|
|
|
The local server will only have the power to move local user and room aliases to
|
|
the new room. Users on other servers will be unaffected.
|
|
|
|
See also: [Delete Room API](rooms.md#delete-room-api)
|
|
|
|
## API
|
|
|
|
You will need to authenticate with an access token for an admin user.
|
|
|
|
### URL
|
|
|
|
`POST /_synapse/admin/v1/shutdown_room/{room_id}`
|
|
|
|
### URL Parameters
|
|
|
|
* `room_id` - The ID of the room (e.g `!someroom:example.com`)
|
|
|
|
### JSON Body Parameters
|
|
|
|
* `new_room_user_id` - Required. A string representing the user ID of the user that will admin
|
|
the new room that all users in the old room will be moved to.
|
|
* `room_name` - Optional. A string representing the name of the room that new users will be
|
|
invited to.
|
|
* `message` - Optional. A string containing the first message that will be sent as
|
|
`new_room_user_id` in the new room. Ideally this will clearly convey why the
|
|
original room was shut down.
|
|
|
|
If not specified, the default value of `room_name` is "Content Violation
|
|
Notification". The default value of `message` is "Sharing illegal content on
|
|
othis server is not permitted and rooms in violation will be blocked."
|
|
|
|
### Response Parameters
|
|
|
|
* `kicked_users` - An integer number representing the number of users that
|
|
were kicked.
|
|
* `failed_to_kick_users` - An integer number representing the number of users
|
|
that were not kicked.
|
|
* `local_aliases` - An array of strings representing the local aliases that were migrated from
|
|
the old room to the new.
|
|
* `new_room_id` - A string representing the room ID of the new room.
|
|
|
|
## Example
|
|
|
|
Request:
|
|
|
|
```
|
|
POST /_synapse/admin/v1/shutdown_room/!somebadroom%3Aexample.com
|
|
|
|
{
|
|
"new_room_user_id": "@someuser:example.com",
|
|
"room_name": "Content Violation Notification",
|
|
"message": "Bad Room has been shutdown due to content violations on this server. Please review our Terms of Service."
|
|
}
|
|
```
|
|
|
|
Response:
|
|
|
|
```
|
|
{
|
|
"kicked_users": 5,
|
|
"failed_to_kick_users": 0,
|
|
"local_aliases": ["#badroom:example.com", "#evilsaloon:example.com],
|
|
"new_room_id": "!newroomid:example.com",
|
|
},
|
|
```
|