ensure guests never enter mau list
parent
92657be7d0
commit
84a750e0c3
|
@ -192,7 +192,7 @@ class MonthlyActiveUsersStore(SQLBaseStore):
|
||||||
))
|
))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@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
|
"""Checks on the state of monthly active user limits and optionally
|
||||||
add the user to the monthly active tables
|
add the user to the monthly active tables
|
||||||
|
|
||||||
|
@ -201,13 +201,12 @@ class MonthlyActiveUsersStore(SQLBaseStore):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if self.hs.config.limit_usage_by_mau:
|
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:
|
if is_guest:
|
||||||
return
|
return
|
||||||
|
|
||||||
is_trial = yield self.is_trial_user(user_id)
|
is_trial = yield self.is_trial_user(user_id)
|
||||||
if is_trial:
|
if is_trial:
|
||||||
# we don't track trial users in the MAU table.
|
|
||||||
return
|
return
|
||||||
|
|
||||||
last_seen_timestamp = yield self.user_last_seen_monthly_active(user_id)
|
last_seen_timestamp = yield self.user_last_seen_monthly_active(user_id)
|
||||||
|
|
|
@ -101,13 +101,11 @@ class ClientIpStoreTestCase(tests.unittest.TestCase):
|
||||||
self.hs.config.limit_usage_by_mau = True
|
self.hs.config.limit_usage_by_mau = True
|
||||||
self.hs.config.max_mau_value = 50
|
self.hs.config.max_mau_value = 50
|
||||||
user_id = "@user:server"
|
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)
|
active = yield self.store.user_last_seen_monthly_active(user_id)
|
||||||
self.assertFalse(active)
|
self.assertFalse(active)
|
||||||
|
|
||||||
yield self.store.insert_client_ip(
|
|
||||||
user_id, "access_token", "ip", "user_agent", "device_id"
|
|
||||||
)
|
|
||||||
yield self.store.insert_client_ip(
|
yield self.store.insert_client_ip(
|
||||||
user_id, "access_token", "ip", "user_agent", "device_id"
|
user_id, "access_token", "ip", "user_agent", "device_id"
|
||||||
)
|
)
|
||||||
|
|
|
@ -146,8 +146,12 @@ class MonthlyActiveUsersTestCase(HomeserverTestCase):
|
||||||
|
|
||||||
def test_populate_monthly_users_is_guest(self):
|
def test_populate_monthly_users_is_guest(self):
|
||||||
# Test that guest users are not added to mau list
|
# 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.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.pump()
|
||||||
self.store.upsert_monthly_active_user.assert_not_called()
|
self.store.upsert_monthly_active_user.assert_not_called()
|
||||||
|
|
||||||
|
|
|
@ -147,6 +147,7 @@ def setup_test_homeserver(
|
||||||
config.hs_disabled_message = ""
|
config.hs_disabled_message = ""
|
||||||
config.hs_disabled_limit_type = ""
|
config.hs_disabled_limit_type = ""
|
||||||
config.max_mau_value = 50
|
config.max_mau_value = 50
|
||||||
|
config.mau_trial_days = 0
|
||||||
config.mau_limits_reserved_threepids = []
|
config.mau_limits_reserved_threepids = []
|
||||||
config.admin_contact = None
|
config.admin_contact = None
|
||||||
config.rc_messages_per_second = 10000
|
config.rc_messages_per_second = 10000
|
||||||
|
|
Loading…
Reference in New Issue