mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-27 13:39:22 -05:00
bug fixes
This commit is contained in:
parent
e10830e976
commit
886be75ad1
@ -520,7 +520,7 @@ class AuthHandler(BaseHandler):
|
|||||||
"""
|
"""
|
||||||
logger.info("Logging in user %s on device %s", user_id, device_id)
|
logger.info("Logging in user %s on device %s", user_id, device_id)
|
||||||
access_token = yield self.issue_access_token(user_id, device_id)
|
access_token = yield self.issue_access_token(user_id, device_id)
|
||||||
yield self._check_mau_limits()
|
yield self.auth.check_auth_blocking()
|
||||||
|
|
||||||
# the device *should* have been registered before we got here; however,
|
# the device *should* have been registered before we got here; however,
|
||||||
# it's possible we raced against a DELETE operation. The thing we
|
# it's possible we raced against a DELETE operation. The thing we
|
||||||
@ -734,7 +734,7 @@ class AuthHandler(BaseHandler):
|
|||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def validate_short_term_login_token_and_get_user_id(self, login_token):
|
def validate_short_term_login_token_and_get_user_id(self, login_token):
|
||||||
yield self._check_mau_limits()
|
yield self.auth.check_auth_blocking()
|
||||||
auth_api = self.hs.get_auth()
|
auth_api = self.hs.get_auth()
|
||||||
user_id = None
|
user_id = None
|
||||||
try:
|
try:
|
||||||
@ -907,17 +907,6 @@ class AuthHandler(BaseHandler):
|
|||||||
else:
|
else:
|
||||||
return defer.succeed(False)
|
return defer.succeed(False)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
|
||||||
def _check_mau_limits(self):
|
|
||||||
"""
|
|
||||||
Ensure that if mau blocking is enabled that invalid users cannot
|
|
||||||
log in.
|
|
||||||
"""
|
|
||||||
error = AuthError(
|
|
||||||
403, "Monthly Active User limits exceeded", errcode=Codes.MAU_LIMIT_EXCEEDED
|
|
||||||
)
|
|
||||||
yield self.auth.check_auth_blocking(error)
|
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attr.s
|
||||||
class MacaroonGenerator(object):
|
class MacaroonGenerator(object):
|
||||||
|
@ -540,7 +540,7 @@ class RegistrationHandler(BaseHandler):
|
|||||||
Do not accept registrations if monthly active user limits exceeded
|
Do not accept registrations if monthly active user limits exceeded
|
||||||
and limiting is enabled
|
and limiting is enabled
|
||||||
"""
|
"""
|
||||||
error = RegistrationError(
|
try:
|
||||||
403, "Monthly Active User limits exceeded", errcode=Codes.MAU_LIMIT_EXCEEDED
|
yield self.auth.check_auth_blocking()
|
||||||
)
|
except AuthError as e:
|
||||||
yield self.auth.check_auth_blocking(error)
|
raise RegistrationError(e.code, e.message, e.errcode)
|
||||||
|
@ -54,7 +54,7 @@ class MonthlyActiveUsersStore(SQLBaseStore):
|
|||||||
"""
|
"""
|
||||||
txn.execute(sql, (self.hs.config.max_mau_value,))
|
txn.execute(sql, (self.hs.config.max_mau_value,))
|
||||||
|
|
||||||
res = yield self.runInteraction("reap_monthly_active_users", _reap_users)
|
yield self.runInteraction("reap_monthly_active_users", _reap_users)
|
||||||
# It seems poor to invalidate the whole cache, Postgres supports
|
# It seems poor to invalidate the whole cache, Postgres supports
|
||||||
# 'Returning' which would allow me to invalidate only the
|
# 'Returning' which would allow me to invalidate only the
|
||||||
# specific users, but sqlite has no way to do this and instead
|
# specific users, but sqlite has no way to do this and instead
|
||||||
@ -64,7 +64,6 @@ class MonthlyActiveUsersStore(SQLBaseStore):
|
|||||||
# something about it if and when the perf becomes significant
|
# something about it if and when the perf becomes significant
|
||||||
self._user_last_seen_monthly_active.invalidate_all()
|
self._user_last_seen_monthly_active.invalidate_all()
|
||||||
self.get_monthly_active_count.invalidate_all()
|
self.get_monthly_active_count.invalidate_all()
|
||||||
return res
|
|
||||||
|
|
||||||
@cached(num_args=0)
|
@cached(num_args=0)
|
||||||
def get_monthly_active_count(self):
|
def get_monthly_active_count(self):
|
||||||
|
@ -452,12 +452,8 @@ class AuthTestCase(unittest.TestCase):
|
|||||||
lots_of_users = 100
|
lots_of_users = 100
|
||||||
small_number_of_users = 1
|
small_number_of_users = 1
|
||||||
|
|
||||||
error = AuthError(
|
|
||||||
403, "MAU Limit Exceeded", errcode=Codes.MAU_LIMIT_EXCEEDED
|
|
||||||
)
|
|
||||||
|
|
||||||
# Ensure no error thrown
|
# Ensure no error thrown
|
||||||
yield self.auth.check_auth_blocking(error)
|
yield self.auth.check_auth_blocking()
|
||||||
|
|
||||||
self.hs.config.limit_usage_by_mau = True
|
self.hs.config.limit_usage_by_mau = True
|
||||||
|
|
||||||
@ -466,10 +462,10 @@ class AuthTestCase(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
with self.assertRaises(AuthError):
|
with self.assertRaises(AuthError):
|
||||||
yield self.auth.check_auth_blocking(error)
|
yield self.auth.check_auth_blocking()
|
||||||
|
|
||||||
# Ensure does not throw an error
|
# Ensure does not throw an error
|
||||||
self.store.get_monthly_active_count = Mock(
|
self.store.get_monthly_active_count = Mock(
|
||||||
return_value=defer.succeed(small_number_of_users)
|
return_value=defer.succeed(small_number_of_users)
|
||||||
)
|
)
|
||||||
yield self.auth.check_auth_blocking(error)
|
yield self.auth.check_auth_blocking()
|
||||||
|
@ -104,7 +104,6 @@ class RegistrationTestCase(unittest.TestCase):
|
|||||||
self.store.get_monthly_active_count = Mock(
|
self.store.get_monthly_active_count = Mock(
|
||||||
return_value=defer.succeed(self.lots_of_users)
|
return_value=defer.succeed(self.lots_of_users)
|
||||||
)
|
)
|
||||||
|
|
||||||
with self.assertRaises(RegistrationError):
|
with self.assertRaises(RegistrationError):
|
||||||
yield self.handler.get_or_create_user("requester", 'b', "display_name")
|
yield self.handler.get_or_create_user("requester", 'b', "display_name")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user