diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py
index 94bd5347a3..a9c76f323e 100644
--- a/synapse/handlers/profile.py
+++ b/synapse/handlers/profile.py
@@ -207,12 +207,12 @@ class ProfileHandler(BaseHandler):
@defer.inlineCallbacks
def set_displayname(self, target_user, requester, new_displayname, by_admin=False):
- """target_user is the user whose displayname is to be changed;
- requester is the user attempting to make this change."""
+ """target_user is the UserID whose displayname is to be changed;
+ requester is the authenticated user attempting to make this change."""
if not self.hs.is_mine(target_user):
raise SynapseError(400, "User is not hosted on this Home Server")
- if not by_admin and target_user != requester.user:
+ if not by_admin and requester and target_user != requester.user:
raise AuthError(400, "Cannot set another user's displayname")
if not by_admin and self.hs.config.disable_set_displayname:
@@ -239,7 +239,8 @@ class ProfileHandler(BaseHandler):
target_user.to_string(), profile
)
- yield self._update_join_states(requester, target_user)
+ if requester:
+ yield self._update_join_states(requester, target_user)
# start a profile replication push
run_in_background(self._replicate_profiles)
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py
index 14031cea47..e308fcbb45 100644
--- a/synapse/handlers/register.py
+++ b/synapse/handlers/register.py
@@ -178,7 +178,7 @@ class RegistrationHandler(BaseHandler):
if display_name:
yield self.profile_handler.set_displayname(
- user, user, display_name, by_admin=True,
+ user, None, display_name, by_admin=True,
)
if self.hs.config.user_directory_search_all_users:
@@ -208,7 +208,7 @@ class RegistrationHandler(BaseHandler):
)
yield self.profile_handler.set_displayname(
- user, user, user.localpart, by_admin=True,
+ user, None, user.localpart, by_admin=True,
)
except SynapseError:
@@ -257,7 +257,7 @@ class RegistrationHandler(BaseHandler):
)
yield self.profile_handler.set_displayname(
- user, user, user.localpart, by_admin=True,
+ user, None, user.localpart, by_admin=True,
)
defer.returnValue(user_id)
@@ -308,7 +308,7 @@ class RegistrationHandler(BaseHandler):
)
yield self.profile_handler.set_displayname(
- user, user, user.localpart, by_admin=True,
+ user, None, user.localpart, by_admin=True,
)
except Exception as e:
yield self.store.add_access_token_to_user(user_id, token)
@@ -466,7 +466,7 @@ class RegistrationHandler(BaseHandler):
)
if displayname is not None:
yield self.profile_handler.set_displayname(
- user, user, displayname, by_admin=True,
+ user, None, displayname, by_admin=True,
)
else:
yield self._auth_handler.delete_access_tokens_for_user(user_id)
|