summary refs log tree commit diff
path: root/synapse/events
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2017-10-04 10:47:54 +0100
committerDavid Baker <dave@matrix.org>2017-10-04 10:47:54 +0100
commit197c14dbcfa9bc5bb281833a91ee035cb154216d (patch)
treed3722c194baf40119b93c3e6bf4d4ba7accf60fc /synapse/events
parentMerge pull request #2492 from matrix-org/dbkr/spam_check_invites (diff)
downloadsynapse-197c14dbcfa9bc5bb281833a91ee035cb154216d.tar.xz
Add room creation checks to spam checker
Lets the spam checker deny attempts to create rooms and add aliases
to them.
Diffstat (limited to 'synapse/events')
-rw-r--r--synapse/events/spamcheck.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/synapse/events/spamcheck.py b/synapse/events/spamcheck.py
index 8b01c091e9..7cb3468df4 100644
--- a/synapse/events/spamcheck.py
+++ b/synapse/events/spamcheck.py
@@ -61,3 +61,35 @@ class SpamChecker(object):
             return True
 
         return self.spam_checker.user_may_invite(userid, room_id)
+
+    def user_may_create_room(self, userid):
+        """Checks if a given user may create a room
+
+        If this method returns false, the creation request will be rejected.
+
+        Args:
+            userid (string): The sender's user ID
+
+        Returns:
+            bool: True if the user may create a room, otherwise False
+        """
+        if self.spam_checker is None:
+            return True
+
+        return self.spam_checker.user_may_create_room(userid)
+
+    def user_may_create_room_alias(self, userid, room_alias):
+        """Checks if a given user may create a room alias
+
+        If this method returns false, the association request will be rejected.
+
+        Args:
+            userid (string): The sender's user ID
+
+        Returns:
+            bool: True if the user may create a room alias, otherwise False
+        """
+        if self.spam_checker is None:
+            return True
+
+        return self.spam_checker.user_may_create_room_alias(userid, room_alias)