mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-07 06:03:09 -06:00
Make check more readable, also check for the sender
This commit is contained in:
parent
26dd627a2a
commit
73dddea17f
|
|
@ -832,13 +832,14 @@ func (d *Database) handleRedactions(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, "", fmt.Errorf("unable to get powerlevels for room: %w", err)
|
return nil, "", fmt.Errorf("unable to get powerlevels for room: %w", err)
|
||||||
}
|
}
|
||||||
redactPL := pl.Redact
|
|
||||||
redactUser := pl.UserLevel(redactionEvent.Sender())
|
redactUser := pl.UserLevel(redactionEvent.Sender())
|
||||||
// The power level of the redaction event’s sender is greater than or equal to the redact level.
|
switch {
|
||||||
userAllowed := redactUser >= redactPL
|
case redactUser >= pl.Redact:
|
||||||
// The domain of the redaction event’s sender matches that of the original event’s sender.
|
// The power level of the redaction event’s sender is greater than or equal to the redact level.
|
||||||
originAllowed := redactedEvent.Origin() == redactionEvent.Origin()
|
case redactedEvent.Origin() == redactionEvent.Origin() && redactedEvent.Sender() == redactionEvent.Sender():
|
||||||
if !originAllowed && !userAllowed {
|
// The domain of the redaction event’s sender matches that of the original event’s sender.
|
||||||
|
default:
|
||||||
return nil, "", nil
|
return nil, "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue