mirror of
https://github.com/element-hq/synapse
synced 2024-08-20 06:10:21 +00:00
Fix how we check for self redaction
This commit is contained in:
parent
8df88b5ff3
commit
c64c3bb4c5
1 changed files with 18 additions and 4 deletions
|
@ -729,10 +729,24 @@ class EventCreationHandler(object):
|
|||
assert not self.config.worker_app
|
||||
|
||||
if ratelimit:
|
||||
is_admin_redaction = (
|
||||
event.type == EventTypes.Redaction
|
||||
and event.sender != requester.user.to_string()
|
||||
# We check if this is a room admin redacting an event so that we
|
||||
# can apply different ratelimiting. We do this by simply checking
|
||||
# its not a self-redaction (to avoid having to look up whether the
|
||||
# user is actually admin or not).
|
||||
is_admin_redaction = False
|
||||
if event.type == EventTypes.Redaction:
|
||||
original_event = yield self.store.get_event(
|
||||
event.redacts,
|
||||
check_redacted=False,
|
||||
get_prev_content=False,
|
||||
allow_rejected=False,
|
||||
allow_none=True,
|
||||
)
|
||||
|
||||
is_admin_redaction = (
|
||||
original_event and event.sender != original_event.sender
|
||||
)
|
||||
|
||||
yield self.base_handler.ratelimit(
|
||||
requester, is_admin_redaction=is_admin_redaction
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue