mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Search non ASCII display names using Admin API (#16767)
Closes #16370 Signed-off-by: Adam Jedrzejewski <adamjedrzejewski@icloud.com>
This commit is contained in:
parent
798a507ee0
commit
c7d0d02be7
2
changelog.d/16767.bugfix
Normal file
2
changelog.d/16767.bugfix
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Fixed a bug that prevented users from being queried by display name if it contains non-ASCII characters.
|
||||||
|
|
@ -107,7 +107,7 @@ class UsersRestServletV2(RestServlet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
user_id = parse_string(request, "user_id")
|
user_id = parse_string(request, "user_id")
|
||||||
name = parse_string(request, "name")
|
name = parse_string(request, "name", encoding="utf-8")
|
||||||
|
|
||||||
guests = parse_boolean(request, "guests", default=True)
|
guests = parse_boolean(request, "guests", default=True)
|
||||||
if self._msc3861_enabled and guests:
|
if self._msc3861_enabled and guests:
|
||||||
|
@ -1638,8 +1638,17 @@ class UserRestTestCase(unittest.HomeserverTestCase):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.non_ascii_displayname = "ąćęłńóśżźäöüß中国日本"
|
||||||
|
self.non_ascii_user = self.register_user(
|
||||||
|
"nonascii", "nonascii", displayname=self.non_ascii_displayname
|
||||||
|
)
|
||||||
|
|
||||||
self.url_prefix = "/_synapse/admin/v2/users/%s"
|
self.url_prefix = "/_synapse/admin/v2/users/%s"
|
||||||
self.url_other_user = self.url_prefix % self.other_user
|
self.url_other_user = self.url_prefix % self.other_user
|
||||||
|
self.url_non_ascii_user = (
|
||||||
|
"/_synapse/admin/v2/users?name=%s"
|
||||||
|
% urllib.parse.quote(self.non_ascii_displayname)
|
||||||
|
)
|
||||||
|
|
||||||
def test_requester_is_no_admin(self) -> None:
|
def test_requester_is_no_admin(self) -> None:
|
||||||
"""
|
"""
|
||||||
@ -1790,6 +1799,20 @@ class UserRestTestCase(unittest.HomeserverTestCase):
|
|||||||
self.assertEqual("User", channel.json_body["displayname"])
|
self.assertEqual("User", channel.json_body["displayname"])
|
||||||
self._check_fields(channel.json_body)
|
self._check_fields(channel.json_body)
|
||||||
|
|
||||||
|
def test_get_user_nonascii_displayname(self) -> None:
|
||||||
|
"""
|
||||||
|
Test get user by non-ascii display name
|
||||||
|
"""
|
||||||
|
channel = self.make_request(
|
||||||
|
"GET",
|
||||||
|
self.url_non_ascii_user,
|
||||||
|
access_token=self.admin_user_tok,
|
||||||
|
)
|
||||||
|
|
||||||
|
users = {user["name"]: user for user in channel.json_body["users"]}
|
||||||
|
self.assertEqual(200, channel.code, msg=channel.json_body)
|
||||||
|
self.assertIn(self.non_ascii_user, users, channel.json_body["users"])
|
||||||
|
|
||||||
def test_create_server_admin(self) -> None:
|
def test_create_server_admin(self) -> None:
|
||||||
"""
|
"""
|
||||||
Check that a new admin user is created successfully.
|
Check that a new admin user is created successfully.
|
||||||
|
Loading…
Reference in New Issue
Block a user