Remove usage of request.postpath
This is an undocumented variable in twisted, and relies on the servlet being mounted in the right way. This also breaks getting push rules on workers.
This commit is contained in:
parent
ec638a1602
commit
ad010f6306
|
@ -31,7 +31,7 @@ from .base import ClientV1RestServlet, client_path_patterns
|
||||||
|
|
||||||
|
|
||||||
class PushRuleRestServlet(ClientV1RestServlet):
|
class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
PATTERNS = client_path_patterns("/pushrules/.*$")
|
PATTERNS = client_path_patterns("/(?P<path>pushrules/.*)$")
|
||||||
SLIGHTLY_PEDANTIC_TRAILING_SLASH_ERROR = (
|
SLIGHTLY_PEDANTIC_TRAILING_SLASH_ERROR = (
|
||||||
"Unrecognised request: You probably wanted a trailing slash")
|
"Unrecognised request: You probably wanted a trailing slash")
|
||||||
|
|
||||||
|
@ -42,11 +42,11 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
self._is_worker = hs.config.worker_app is not None
|
self._is_worker = hs.config.worker_app is not None
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_PUT(self, request):
|
def on_PUT(self, request, path):
|
||||||
if self._is_worker:
|
if self._is_worker:
|
||||||
raise Exception("Cannot handle PUT /push_rules on worker")
|
raise Exception("Cannot handle PUT /push_rules on worker")
|
||||||
|
|
||||||
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
|
spec = _rule_spec_from_path([x for x in path.split("/")])
|
||||||
try:
|
try:
|
||||||
priority_class = _priority_class_from_spec(spec)
|
priority_class = _priority_class_from_spec(spec)
|
||||||
except InvalidRuleException as e:
|
except InvalidRuleException as e:
|
||||||
|
@ -106,11 +106,11 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
defer.returnValue((200, {}))
|
defer.returnValue((200, {}))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_DELETE(self, request):
|
def on_DELETE(self, request, path):
|
||||||
if self._is_worker:
|
if self._is_worker:
|
||||||
raise Exception("Cannot handle DELETE /push_rules on worker")
|
raise Exception("Cannot handle DELETE /push_rules on worker")
|
||||||
|
|
||||||
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
|
spec = _rule_spec_from_path([x for x in path.split("/")])
|
||||||
|
|
||||||
requester = yield self.auth.get_user_by_req(request)
|
requester = yield self.auth.get_user_by_req(request)
|
||||||
user_id = requester.user.to_string()
|
user_id = requester.user.to_string()
|
||||||
|
@ -130,7 +130,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_GET(self, request):
|
def on_GET(self, request, path):
|
||||||
requester = yield self.auth.get_user_by_req(request)
|
requester = yield self.auth.get_user_by_req(request)
|
||||||
user_id = requester.user.to_string()
|
user_id = requester.user.to_string()
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
|
|
||||||
rules = format_push_rules_for_user(requester.user, rules)
|
rules = format_push_rules_for_user(requester.user, rules)
|
||||||
|
|
||||||
path = [x.decode('utf8') for x in request.postpath][1:]
|
path = [x for x in path.split("/")][1:]
|
||||||
|
|
||||||
if path == []:
|
if path == []:
|
||||||
# we're a reference impl: pedantry is our job.
|
# we're a reference impl: pedantry is our job.
|
||||||
|
@ -157,7 +157,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
else:
|
else:
|
||||||
raise UnrecognizedRequestError()
|
raise UnrecognizedRequestError()
|
||||||
|
|
||||||
def on_OPTIONS(self, _):
|
def on_OPTIONS(self, request, path):
|
||||||
return 200, {}
|
return 200, {}
|
||||||
|
|
||||||
def notify_user(self, user_id):
|
def notify_user(self, user_id):
|
||||||
|
|
Loading…
Reference in New Issue