1
0

Don't ratelimit when admin updates profile

This commit is contained in:
Brendan Abolivier
2021-09-01 17:53:36 +01:00
parent acfc9d4972
commit 3f8e4e787a
2 changed files with 8 additions and 3 deletions

View File

@@ -326,7 +326,8 @@ class ProfileHandler(BaseHandler):
target_user.to_string(), profile
)
await self._update_join_states(requester, target_user)
# Don't ratelimit when the admin makes the change.
await self._update_join_states(requester, target_user, ratelimit=not by_admin)
# start a profile replication push
run_in_background(self._replicate_profiles)
@@ -551,12 +552,13 @@ class ProfileHandler(BaseHandler):
return response
async def _update_join_states(
self, requester: Requester, target_user: UserID
self, requester: Requester, target_user: UserID, ratelimit: bool = True,
) -> None:
if not self.hs.is_mine(target_user):
return
await self.ratelimit(requester)
if ratelimit:
await self.ratelimit(requester)
# Do not actually update the room state for shadow-banned users.
if requester.shadow_banned:

View File

@@ -288,6 +288,9 @@ class RegistrationHandler(BaseHandler):
if default_display_name:
requester = create_requester(user)
# FIXME: this is DINUM-specific code to update DINUM's custom
# Sydent-powered userdir, and needed some custom changes to ignore
# the ratelimiter.
await self.profile_handler.set_displayname(
user, requester, default_display_name, by_admin=True
)