mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Include room states on invite events sent to ASes (#6455)
This commit is contained in:
parent
6cef918a4b
commit
1bca21e1da
1
changelog.d/6455.feature
Normal file
1
changelog.d/6455.feature
Normal file
@ -0,0 +1 @@
|
|||||||
|
Include room states on invite events that are sent to application services. Contributed by @Sorunome.
|
@ -19,7 +19,7 @@ from prometheus_client import Counter
|
|||||||
|
|
||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
|
|
||||||
from synapse.api.constants import ThirdPartyEntityKind
|
from synapse.api.constants import EventTypes, ThirdPartyEntityKind
|
||||||
from synapse.api.errors import CodeMessageException
|
from synapse.api.errors import CodeMessageException
|
||||||
from synapse.events.utils import serialize_event
|
from synapse.events.utils import serialize_event
|
||||||
from synapse.http.client import SimpleHttpClient
|
from synapse.http.client import SimpleHttpClient
|
||||||
@ -207,7 +207,7 @@ class ApplicationServiceApi(SimpleHttpClient):
|
|||||||
if service.url is None:
|
if service.url is None:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
events = self._serialize(events)
|
events = self._serialize(service, events)
|
||||||
|
|
||||||
if txn_id is None:
|
if txn_id is None:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
@ -233,6 +233,18 @@ class ApplicationServiceApi(SimpleHttpClient):
|
|||||||
failed_transactions_counter.labels(service.id).inc()
|
failed_transactions_counter.labels(service.id).inc()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _serialize(self, events):
|
def _serialize(self, service, events):
|
||||||
time_now = self.clock.time_msec()
|
time_now = self.clock.time_msec()
|
||||||
return [serialize_event(e, time_now, as_client_event=True) for e in events]
|
return [
|
||||||
|
serialize_event(
|
||||||
|
e,
|
||||||
|
time_now,
|
||||||
|
as_client_event=True,
|
||||||
|
is_invite=(
|
||||||
|
e.type == EventTypes.Member
|
||||||
|
and e.membership == "invite"
|
||||||
|
and service.is_interested_in_user(e.state_key)
|
||||||
|
),
|
||||||
|
)
|
||||||
|
for e in events
|
||||||
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user