Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Make room creations denied by user_may_create_room cause an M_FORBIDDEN error to be returned, not M_UNKNOWN #11672

Merged
merged 2 commits into from
Jan 6, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changelog.d/11672.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Whenever the `spamcheck` forbids a user to create a room, a `SynapseError` with `errcode` `M_UNKNOWN` is returned to the client. However, it would be more specific to return the `errcode` `M_UNKNOWN`.

Therefore, this PR will raise `M_FORBIDDEN` instead of `M_UNKNOWN` whenever `synapse/events/spamcheck.py:user_may_create_room` returns `False`.
Note: The `M_FORBIDDEN` code is set in the methods which currently call `user_may_create_room`, not in the method `user_may_create_room` itself.
reivilibre marked this conversation as resolved.
Show resolved Hide resolved
8 changes: 6 additions & 2 deletions synapse/handlers/room.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,9 @@ async def clone_existing_room(
user_id = requester.user.to_string()

if not await self.spam_checker.user_may_create_room(user_id):
raise SynapseError(403, "You are not permitted to create rooms")
raise SynapseError(
403, "You are not permitted to create rooms", Codes.FORBIDDEN
)

creation_content: JsonDict = {
"room_version": new_room_version.identifier,
Expand Down Expand Up @@ -685,7 +687,9 @@ async def create_room(
invite_3pid_list,
)
):
raise SynapseError(403, "You are not permitted to create rooms")
raise SynapseError(
403, "You are not permitted to create rooms", Codes.FORBIDDEN
)

if ratelimit:
await self.request_ratelimiter.ratelimit(requester)
Expand Down