diff options
author | Mathieu Velten <mathieuv@matrix.org> | 2023-07-27 15:45:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-27 15:45:05 +0200 |
commit | a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37 (patch) | |
tree | 3015ecadb093ac002aa6b4a73b4e6a994e188c42 | |
parent | Update PyYAML to 6.0.1 (#16011) (diff) | |
download | synapse-a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37.tar.xz |
Fix 404 on /profile when the display name is empty but not the avatar (#16012)
-rw-r--r-- | changelog.d/16012.bugfix | 1 | ||||
-rw-r--r-- | synapse/handlers/profile.py | 2 | ||||
-rw-r--r-- | tests/handlers/test_profile.py | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/changelog.d/16012.bugfix b/changelog.d/16012.bugfix new file mode 100644 index 0000000000..44ca9377ff --- /dev/null +++ b/changelog.d/16012.bugfix @@ -0,0 +1 @@ +Fix 404 not found code returned on profile endpoint when the display name is empty but not the avatar URL. diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py index a7f8c5e636..c7fe101cd9 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py @@ -68,7 +68,7 @@ class ProfileHandler: if self.hs.is_mine(target_user): profileinfo = await self.store.get_profileinfo(target_user) - if profileinfo.display_name is None: + if profileinfo.display_name is None and profileinfo.avatar_url is None: raise SynapseError(404, "Profile was not found", Codes.NOT_FOUND) return { diff --git a/tests/handlers/test_profile.py b/tests/handlers/test_profile.py index 196ceb0b82..ec2f5d30be 100644 --- a/tests/handlers/test_profile.py +++ b/tests/handlers/test_profile.py @@ -179,6 +179,16 @@ class ProfileTestCase(unittest.HomeserverTestCase): self.assertEqual("http://my.server/me.png", avatar_url) + def test_get_profile_empty_displayname(self) -> None: + self.get_success(self.store.set_profile_displayname(self.frank, None)) + self.get_success( + self.store.set_profile_avatar_url(self.frank, "http://my.server/me.png") + ) + + profile = self.get_success(self.handler.get_profile(self.frank.to_string())) + + self.assertEqual("http://my.server/me.png", profile["avatar_url"]) + def test_set_my_avatar(self) -> None: self.get_success( self.handler.set_avatar_url( |