summary refs log tree commit diff
diff options
context:
space:
mode:
authorNeil Johnson <neil@matrix.org>2018-09-06 17:22:53 +0100
committerNeil Johnson <neil@matrix.org>2018-09-06 17:22:53 +0100
commit84a750e0c36f653b71a06c564154f257c1b7dee3 (patch)
tree60b82bcc541df570b7e1cca4a65cdfe16a6b6ec0
parenttowncrier (diff)
downloadsynapse-84a750e0c36f653b71a06c564154f257c1b7dee3.tar.xz
ensure guests never enter mau list
-rw-r--r--synapse/storage/monthly_active_users.py7
-rw-r--r--tests/storage/test_client_ips.py4
-rw-r--r--tests/storage/test_monthly_active_users.py6
-rw-r--r--tests/utils.py1
4 files changed, 10 insertions, 8 deletions
diff --git a/synapse/storage/monthly_active_users.py b/synapse/storage/monthly_active_users.py
index e34e16c079..b890c152db 100644
--- a/synapse/storage/monthly_active_users.py
+++ b/synapse/storage/monthly_active_users.py
@@ -192,7 +192,7 @@ class MonthlyActiveUsersStore(SQLBaseStore):
         ))
 
     @defer.inlineCallbacks
-    def populate_monthly_active_users(self, user_id, is_guest=False):
+    def populate_monthly_active_users(self, user_id):
         """Checks on the state of monthly active user limits and optionally
         add the user to the monthly active tables
 
@@ -201,13 +201,12 @@ class MonthlyActiveUsersStore(SQLBaseStore):
         """
 
         if self.hs.config.limit_usage_by_mau:
-            # Guests should not be included as part of MAU group
+            # Trial users and guests should not be included as part of MAU group
+            is_guest = yield self.is_guest(user_id)
             if is_guest:
                 return
-
             is_trial = yield self.is_trial_user(user_id)
             if is_trial:
-                # we don't track trial users in the MAU table.
                 return
 
             last_seen_timestamp = yield self.user_last_seen_monthly_active(user_id)
diff --git a/tests/storage/test_client_ips.py b/tests/storage/test_client_ips.py
index c2e88bdbaf..c9b02a062b 100644
--- a/tests/storage/test_client_ips.py
+++ b/tests/storage/test_client_ips.py
@@ -101,6 +101,7 @@ class ClientIpStoreTestCase(tests.unittest.TestCase):
         self.hs.config.limit_usage_by_mau = True
         self.hs.config.max_mau_value = 50
         user_id = "@user:server"
+        yield self.store.register(user_id=user_id, token="123", password_hash=None)
 
         active = yield self.store.user_last_seen_monthly_active(user_id)
         self.assertFalse(active)
@@ -108,8 +109,5 @@ class ClientIpStoreTestCase(tests.unittest.TestCase):
         yield self.store.insert_client_ip(
             user_id, "access_token", "ip", "user_agent", "device_id"
         )
-        yield self.store.insert_client_ip(
-            user_id, "access_token", "ip", "user_agent", "device_id"
-        )
         active = yield self.store.user_last_seen_monthly_active(user_id)
         self.assertTrue(active)
diff --git a/tests/storage/test_monthly_active_users.py b/tests/storage/test_monthly_active_users.py
index cfe0a7c77d..ccfc21b7fc 100644
--- a/tests/storage/test_monthly_active_users.py
+++ b/tests/storage/test_monthly_active_users.py
@@ -146,8 +146,12 @@ class MonthlyActiveUsersTestCase(HomeserverTestCase):
 
     def test_populate_monthly_users_is_guest(self):
         # Test that guest users are not added to mau list
+        user_id = "user_id"
+        self.store.register(
+            user_id=user_id, token="123", password_hash=None, make_guest=True
+        )
         self.store.upsert_monthly_active_user = Mock()
-        self.store.populate_monthly_active_users('user_id', True)
+        self.store.populate_monthly_active_users(user_id)
         self.pump()
         self.store.upsert_monthly_active_user.assert_not_called()
 
diff --git a/tests/utils.py b/tests/utils.py
index 114470d641..f24bd81bf6 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -147,6 +147,7 @@ def setup_test_homeserver(
         config.hs_disabled_message = ""
         config.hs_disabled_limit_type = ""
         config.max_mau_value = 50
+        config.mau_trial_days = 0
         config.mau_limits_reserved_threepids = []
         config.admin_contact = None
         config.rc_messages_per_second = 10000