summary refs log tree commit diff
path: root/synapse/handlers/profile.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--synapse/handlers/profile.py46
1 files changed, 36 insertions, 10 deletions
diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py

index 87f74dfb8e..d0adf4e934 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py
@@ -39,11 +39,11 @@ class ProfileHandler(BaseHandler): @defer.inlineCallbacks def get_displayname(self, target_user): if self.hs.is_mine(target_user): - displayname = yield self.store.get_profile_displayname( - target_user.localpart + display_name = yield self.store.get_profile_displayname( + target_user.to_string(), ) - defer.returnValue(displayname) + defer.returnValue(display_name) else: try: result = yield self.federation.make_query( @@ -78,7 +78,7 @@ class ProfileHandler(BaseHandler): new_displayname = None yield self.store.set_profile_displayname( - target_user.localpart, new_displayname + target_user.to_string(), new_displayname ) yield self._update_join_states(requester) @@ -87,7 +87,7 @@ class ProfileHandler(BaseHandler): def get_avatar_url(self, target_user): if self.hs.is_mine(target_user): avatar_url = yield self.store.get_profile_avatar_url( - target_user.localpart + target_user.to_string(), ) defer.returnValue(avatar_url) @@ -121,7 +121,7 @@ class ProfileHandler(BaseHandler): raise AuthError(400, "Cannot set another user's avatar_url") yield self.store.set_profile_avatar_url( - target_user.localpart, new_avatar_url + target_user.to_string(), new_avatar_url ) yield self._update_join_states(requester) @@ -137,13 +137,13 @@ class ProfileHandler(BaseHandler): response = {} if just_field is None or just_field == "displayname": - response["displayname"] = yield self.store.get_profile_displayname( - user.localpart + response["displayname"] = yield self.get_displayname( + user ) if just_field is None or just_field == "avatar_url": - response["avatar_url"] = yield self.store.get_profile_avatar_url( - user.localpart + response["avatar_url"] = yield self.get_avatar_url( + user ) defer.returnValue(response) @@ -180,3 +180,29 @@ class ProfileHandler(BaseHandler): "Failed to update join event for room %s - %s", j.room_id, str(e.message) ) + + def get_full_profile_for_user(self, user_id): + if self.hs.is_mine_id(user_id): + return self.store.get_full_profile(user_id) + else: + return self.federation.get_profile(user_id) + + def get_persona_profile_for_user(self, user_id, persona): + if self.hs.is_mine_id(user_id): + return self.store.get_persona_profile(user_id, persona) + else: + return self.federation.get_profile(user_id, persona) + + def get_profile_key_for_user(self, user_id, persona, key): + if self.hs.is_mine_id(user_id): + return self.store.get_profile_key(user_id, persona, key) + else: + return self.federation.get_profile(user_id, persona, key) + + def update_profile_key(self, user_id, persona, key, content): + if self.hs.is_mine_id(user_id): + return self.store.update_profile_key( + user_id, persona, key, content + ) + else: + raise AuthError("Cannot set a remote profile")