Refine SenderID/UserID usage

This commit is contained in:
Devon Hudson 2023-06-02 18:25:46 -06:00
parent 8a3c01fa19
commit bf5bf8363d
No known key found for this signature in database
GPG key ID: CD06B18E77F6A628

View file

@ -988,8 +988,16 @@ func (d *EventDatabase) MaybeRedactEvent(
return nil return nil
} }
_, sender1, _ := gomatrixserverlib.SplitID('@', redactedEvent.SenderID()) sender1Domain := ""
_, sender2, _ := gomatrixserverlib.SplitID('@', redactionEvent.SenderID()) sender1, err := redactedEvent.UserID()
if err == nil {
sender1Domain = string(sender1.Domain())
}
sender2Domain := ""
sender2, err := redactionEvent.UserID()
if err == nil {
sender2Domain = string(sender2.Domain())
}
var powerlevels *gomatrixserverlib.PowerLevelContent var powerlevels *gomatrixserverlib.PowerLevelContent
powerlevels, err = plResolver.Resolve(ctx, redactionEvent.EventID()) powerlevels, err = plResolver.Resolve(ctx, redactionEvent.EventID())
if err != nil { if err != nil {
@ -999,7 +1007,7 @@ func (d *EventDatabase) MaybeRedactEvent(
switch { switch {
case powerlevels.UserLevel(redactionEvent.SenderID()) >= powerlevels.Redact: case powerlevels.UserLevel(redactionEvent.SenderID()) >= powerlevels.Redact:
// 1. The power level of the redaction events sender is greater than or equal to the redact level. // 1. The power level of the redaction events sender is greater than or equal to the redact level.
case sender1 == sender2: case sender1Domain == sender2Domain:
// 2. The domain of the redaction events sender matches that of the original events sender. // 2. The domain of the redaction events sender matches that of the original events sender.
default: default:
ignoreRedaction = true ignoreRedaction = true