Make check more readable, also check for the sender

This commit is contained in:
Till Faelligen 2022-06-09 18:20:04 +02:00
parent 26dd627a2a
commit 73dddea17f

View file

@ -832,13 +832,14 @@ func (d *Database) handleRedactions(
if err != nil {
return nil, "", fmt.Errorf("unable to get powerlevels for room: %w", err)
}
redactPL := pl.Redact
redactUser := pl.UserLevel(redactionEvent.Sender())
// The power level of the redaction events sender is greater than or equal to the redact level.
userAllowed := redactUser >= redactPL
// The domain of the redaction events sender matches that of the original events sender.
originAllowed := redactedEvent.Origin() == redactionEvent.Origin()
if !originAllowed && !userAllowed {
switch {
case redactUser >= pl.Redact:
// The power level of the redaction events sender is greater than or equal to the redact level.
case redactedEvent.Origin() == redactionEvent.Origin() && redactedEvent.Sender() == redactionEvent.Sender():
// The domain of the redaction events sender matches that of the original events sender.
default:
return nil, "", nil
}