Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit ff1f0ee

Browse files
Half-Shotclokepanoadragon453
authored
Call set_avatar_url with target_user, not user_id (#8872)
* Call set_avatar_url with target_user, not user_id Fixes #8871 * Create 8872.bugfix * Update synapse/rest/admin/users.py Co-authored-by: Patrick Cloke <[email protected]> * Testing * Update changelog.d/8872.bugfix Co-authored-by: Andrew Morgan <[email protected]> Co-authored-by: Patrick Cloke <[email protected]> Co-authored-by: Andrew Morgan <[email protected]>
1 parent 1f3748f commit ff1f0ee

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

changelog.d/8872.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix a bug where `PUT /_synapse/admin/v2/users/<user_id>` failed to create a new user when `avatar_url` is specified. Bug introduced in Synapse v1.9.0.

synapse/rest/admin/users.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,9 +320,9 @@ async def on_PUT(self, request, user_id):
320320
data={},
321321
)
322322

323-
if "avatar_url" in body and type(body["avatar_url"]) == str:
323+
if "avatar_url" in body and isinstance(body["avatar_url"], str):
324324
await self.profile_handler.set_avatar_url(
325-
user_id, requester, body["avatar_url"], True
325+
target_user, requester, body["avatar_url"], True
326326
)
327327

328328
ret = await self.admin_handler.get_user(target_user)

tests/rest/admin/test_user.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ def test_create_server_admin(self):
561561
"admin": True,
562562
"displayname": "Bob's name",
563563
"threepids": [{"medium": "email", "address": "[email protected]"}],
564-
"avatar_url": None,
564+
"avatar_url": "mxc://fibble/wibble",
565565
}
566566
)
567567

@@ -578,6 +578,7 @@ def test_create_server_admin(self):
578578
self.assertEqual("email", channel.json_body["threepids"][0]["medium"])
579579
self.assertEqual("[email protected]", channel.json_body["threepids"][0]["address"])
580580
self.assertEqual(True, channel.json_body["admin"])
581+
self.assertEqual("mxc://fibble/wibble", channel.json_body["avatar_url"])
581582

582583
# Get user
583584
request, channel = self.make_request(
@@ -592,6 +593,7 @@ def test_create_server_admin(self):
592593
self.assertEqual(True, channel.json_body["admin"])
593594
self.assertEqual(False, channel.json_body["is_guest"])
594595
self.assertEqual(False, channel.json_body["deactivated"])
596+
self.assertEqual("mxc://fibble/wibble", channel.json_body["avatar_url"])
595597

596598
def test_create_user(self):
597599
"""
@@ -606,6 +608,7 @@ def test_create_user(self):
606608
"admin": False,
607609
"displayname": "Bob's name",
608610
"threepids": [{"medium": "email", "address": "[email protected]"}],
611+
"avatar_url": "mxc://fibble/wibble",
609612
}
610613
)
611614

@@ -622,6 +625,7 @@ def test_create_user(self):
622625
self.assertEqual("email", channel.json_body["threepids"][0]["medium"])
623626
self.assertEqual("[email protected]", channel.json_body["threepids"][0]["address"])
624627
self.assertEqual(False, channel.json_body["admin"])
628+
self.assertEqual("mxc://fibble/wibble", channel.json_body["avatar_url"])
625629

626630
# Get user
627631
request, channel = self.make_request(
@@ -636,6 +640,7 @@ def test_create_user(self):
636640
self.assertEqual(False, channel.json_body["admin"])
637641
self.assertEqual(False, channel.json_body["is_guest"])
638642
self.assertEqual(False, channel.json_body["deactivated"])
643+
self.assertEqual("mxc://fibble/wibble", channel.json_body["avatar_url"])
639644

640645
@override_config(
641646
{"limit_usage_by_mau": True, "max_mau_value": 2, "mau_trial_days": 0}

0 commit comments

Comments
 (0)