mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-01 19:34:46 -05:00
Add module callbacks called for reacting to deactivation status change and profile update (#12062)
This commit is contained in:
parent
f26e390a40
commit
300ed0b8a6
7 changed files with 360 additions and 7 deletions
|
|
@ -71,6 +71,8 @@ class ProfileHandler:
|
|||
|
||||
self.server_name = hs.config.server.server_name
|
||||
|
||||
self._third_party_rules = hs.get_third_party_event_rules()
|
||||
|
||||
if hs.config.worker.run_background_tasks:
|
||||
self.clock.looping_call(
|
||||
self._update_remote_profile_cache, self.PROFILE_UPDATE_MS
|
||||
|
|
@ -171,6 +173,7 @@ class ProfileHandler:
|
|||
requester: Requester,
|
||||
new_displayname: str,
|
||||
by_admin: bool = False,
|
||||
deactivation: bool = False,
|
||||
) -> None:
|
||||
"""Set the displayname of a user
|
||||
|
||||
|
|
@ -179,6 +182,7 @@ class ProfileHandler:
|
|||
requester: The user attempting to make this change.
|
||||
new_displayname: The displayname to give this user.
|
||||
by_admin: Whether this change was made by an administrator.
|
||||
deactivation: Whether this change was made while deactivating the user.
|
||||
"""
|
||||
if not self.hs.is_mine(target_user):
|
||||
raise SynapseError(400, "User is not hosted on this homeserver")
|
||||
|
|
@ -227,6 +231,10 @@ class ProfileHandler:
|
|||
target_user.to_string(), profile
|
||||
)
|
||||
|
||||
await self._third_party_rules.on_profile_update(
|
||||
target_user.to_string(), profile, by_admin, deactivation
|
||||
)
|
||||
|
||||
await self._update_join_states(requester, target_user)
|
||||
|
||||
async def get_avatar_url(self, target_user: UserID) -> Optional[str]:
|
||||
|
|
@ -261,6 +269,7 @@ class ProfileHandler:
|
|||
requester: Requester,
|
||||
new_avatar_url: str,
|
||||
by_admin: bool = False,
|
||||
deactivation: bool = False,
|
||||
) -> None:
|
||||
"""Set a new avatar URL for a user.
|
||||
|
||||
|
|
@ -269,6 +278,7 @@ class ProfileHandler:
|
|||
requester: The user attempting to make this change.
|
||||
new_avatar_url: The avatar URL to give this user.
|
||||
by_admin: Whether this change was made by an administrator.
|
||||
deactivation: Whether this change was made while deactivating the user.
|
||||
"""
|
||||
if not self.hs.is_mine(target_user):
|
||||
raise SynapseError(400, "User is not hosted on this homeserver")
|
||||
|
|
@ -315,6 +325,10 @@ class ProfileHandler:
|
|||
target_user.to_string(), profile
|
||||
)
|
||||
|
||||
await self._third_party_rules.on_profile_update(
|
||||
target_user.to_string(), profile, by_admin, deactivation
|
||||
)
|
||||
|
||||
await self._update_join_states(requester, target_user)
|
||||
|
||||
@cached()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue