spam check room publishing
This commit is contained in:
parent
78d4ced829
commit
d8ce68b09b
|
@ -85,6 +85,7 @@ class SpamChecker(object):
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
userid (string): The sender's user ID
|
userid (string): The sender's user ID
|
||||||
|
room_alias (string): The alias to be created
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
bool: True if the user may create a room alias, otherwise False
|
bool: True if the user may create a room alias, otherwise False
|
||||||
|
@ -93,3 +94,20 @@ class SpamChecker(object):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return self.spam_checker.user_may_create_room_alias(userid, room_alias)
|
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)
|
||||||
|
|
|
@ -334,6 +334,14 @@ class DirectoryHandler(BaseHandler):
|
||||||
room_id (str)
|
room_id (str)
|
||||||
visibility (str): "public" or "private"
|
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:
|
if requester.is_guest:
|
||||||
raise AuthError(403, "Guests cannot edit the published room list")
|
raise AuthError(403, "Guests cannot edit the published room list")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue