Move MSC2432 stuff onto unstable prefix (#6948)
it's not in the spec yet, so needs to be unstable. Also add a feature flag for it. Also add a test for admin users.
This commit is contained in:
parent
abf1e5c526
commit
880aaac1d8
|
@ -0,0 +1 @@
|
||||||
|
Implement `GET /_matrix/client/r0/rooms/{roomId}/aliases` endpoint as per [MSC2432](https://github.com/matrix-org/matrix-doc/pull/2432).
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
""" This module contains REST servlets to do with rooms: /rooms/<paths> """
|
""" This module contains REST servlets to do with rooms: /rooms/<paths> """
|
||||||
import logging
|
import logging
|
||||||
|
import re
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from six.moves.urllib import parse as urlparse
|
from six.moves.urllib import parse as urlparse
|
||||||
|
@ -848,7 +849,12 @@ class RoomTypingRestServlet(RestServlet):
|
||||||
|
|
||||||
|
|
||||||
class RoomAliasListServlet(RestServlet):
|
class RoomAliasListServlet(RestServlet):
|
||||||
PATTERNS = client_patterns("/rooms/(?P<room_id>[^/]*)/aliases", unstable=False)
|
PATTERNS = [
|
||||||
|
re.compile(
|
||||||
|
r"^/_matrix/client/unstable/org\.matrix\.msc2432"
|
||||||
|
r"/rooms/(?P<room_id>[^/]*)/aliases"
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
def __init__(self, hs: "synapse.server.HomeServer"):
|
def __init__(self, hs: "synapse.server.HomeServer"):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
|
@ -72,6 +72,8 @@ class VersionsRestServlet(RestServlet):
|
||||||
"org.matrix.label_based_filtering": True,
|
"org.matrix.label_based_filtering": True,
|
||||||
# Implements support for cross signing as described in MSC1756
|
# Implements support for cross signing as described in MSC1756
|
||||||
"org.matrix.e2e_cross_signing": True,
|
"org.matrix.e2e_cross_signing": True,
|
||||||
|
# Implements additional endpoints as described in MSC2432
|
||||||
|
"org.matrix.msc2432": True,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1729,8 +1729,7 @@ class ContextTestCase(unittest.HomeserverTestCase):
|
||||||
self.assertEqual(events_after[1].get("content"), {}, events_after[1])
|
self.assertEqual(events_after[1].get("content"), {}, events_after[1])
|
||||||
|
|
||||||
|
|
||||||
class DirectoryTestCase(unittest.HomeserverTestCase):
|
class RoomAliasListTestCase(unittest.HomeserverTestCase):
|
||||||
|
|
||||||
servlets = [
|
servlets = [
|
||||||
synapse.rest.admin.register_servlets_for_client_rest_resource,
|
synapse.rest.admin.register_servlets_for_client_rest_resource,
|
||||||
directory.register_servlets,
|
directory.register_servlets,
|
||||||
|
@ -1756,6 +1755,16 @@ class DirectoryTestCase(unittest.HomeserverTestCase):
|
||||||
res = self._get_aliases(user_tok, expected_code=403)
|
res = self._get_aliases(user_tok, expected_code=403)
|
||||||
self.assertEqual(res["errcode"], "M_FORBIDDEN")
|
self.assertEqual(res["errcode"], "M_FORBIDDEN")
|
||||||
|
|
||||||
|
def test_admin_user(self):
|
||||||
|
alias1 = self._random_alias()
|
||||||
|
self._set_alias_via_directory(alias1)
|
||||||
|
|
||||||
|
self.register_user("user", "test", admin=True)
|
||||||
|
user_tok = self.login("user", "test")
|
||||||
|
|
||||||
|
res = self._get_aliases(user_tok)
|
||||||
|
self.assertEqual(res["aliases"], [alias1])
|
||||||
|
|
||||||
def test_with_aliases(self):
|
def test_with_aliases(self):
|
||||||
alias1 = self._random_alias()
|
alias1 = self._random_alias()
|
||||||
alias2 = self._random_alias()
|
alias2 = self._random_alias()
|
||||||
|
@ -1770,7 +1779,8 @@ class DirectoryTestCase(unittest.HomeserverTestCase):
|
||||||
"""Calls the endpoint under test. returns the json response object."""
|
"""Calls the endpoint under test. returns the json response object."""
|
||||||
request, channel = self.make_request(
|
request, channel = self.make_request(
|
||||||
"GET",
|
"GET",
|
||||||
"/_matrix/client/r0/rooms/%s/aliases" % (self.room_id,),
|
"/_matrix/client/unstable/org.matrix.msc2432/rooms/%s/aliases"
|
||||||
|
% (self.room_id,),
|
||||||
access_token=access_token,
|
access_token=access_token,
|
||||||
)
|
)
|
||||||
self.render(request)
|
self.render(request)
|
||||||
|
|
Loading…
Reference in New Issue