Skip to content

Commit

Permalink
Change displayname of user as admin in rooms (matrix-org#6876)
Browse files Browse the repository at this point in the history
  • Loading branch information
dklimpel authored and phil-flex committed Mar 27, 2020
1 parent 85ade38 commit fc670e7
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.d/6572.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
When a user's profile is updated via the admin API, also generate a displayname/avatar update for that user in each room.
12 changes: 11 additions & 1 deletion synapse/handlers/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
SynapseError,
)
from synapse.metrics.background_process_metrics import run_as_background_process
from synapse.types import UserID, get_domain_from_id
from synapse.types import UserID, create_requester, get_domain_from_id

from ._base import BaseHandler

Expand Down Expand Up @@ -165,6 +165,12 @@ def set_displayname(self, target_user, requester, new_displayname, by_admin=Fals
if new_displayname == "":
new_displayname = None

# If the admin changes the display name of a user, the requesting user cannot send
# the join event to update the displayname in the rooms.
# This must be done by the target user himself.
if by_admin:
requester = create_requester(target_user)

yield self.store.set_profile_displayname(target_user.localpart, new_displayname)

if self.hs.config.user_directory_search_all_users:
Expand Down Expand Up @@ -217,6 +223,10 @@ def set_avatar_url(self, target_user, requester, new_avatar_url, by_admin=False)
400, "Avatar URL is too long (max %i)" % (MAX_AVATAR_URL_LEN,)
)

# Same like set_displayname
if by_admin:
requester = create_requester(target_user)

yield self.store.set_profile_avatar_url(target_user.localpart, new_avatar_url)

if self.hs.config.user_directory_search_all_users:
Expand Down

0 comments on commit fc670e7

Please sign in to comment.