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

Commit

Permalink
spam check room publishing
Browse files Browse the repository at this point in the history
  • Loading branch information
dbkr committed Oct 4, 2017
1 parent 78d4ced commit d8ce68b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
18 changes: 18 additions & 0 deletions synapse/events/spamcheck.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ def user_may_create_room_alias(self, userid, room_alias):
Args:
userid (string): The sender's user ID
room_alias (string): The alias to be created
Returns:
bool: True if the user may create a room alias, otherwise False
Expand All @@ -93,3 +94,20 @@ def user_may_create_room_alias(self, userid, room_alias):
return True

return self.spam_checker.user_may_create_room_alias(userid, room_alias)

def user_may_publish_room(self, userid, room_id):
"""Checks if a given user may publish a room to the directory
If this method returns false, the publish request will be rejected.
Args:
userid (string): The sender's user ID
room_id (string): The ID of the room that would be published
Returns:
bool: True if the user may publish the room, otherwise False
"""
if self.spam_checker is None:
return True

return self.spam_checker.user_may_publish_room(userid, room_id)
8 changes: 8 additions & 0 deletions synapse/handlers/directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,14 @@ def edit_published_room_list(self, requester, room_id, visibility):
room_id (str)
visibility (str): "public" or "private"
"""
if not self.spam_checker.user_may_publish_room(
requester.user.to_string(), room_id
):
raise AuthError(
403,
"This user is not permitted to publish rooms to the room list"
)

if requester.is_guest:
raise AuthError(403, "Guests cannot edit the published room list")

Expand Down

0 comments on commit d8ce68b

Please sign in to comment.