mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 10:33:11 -06:00
Fix redactions maybe
This commit is contained in:
parent
46a2204064
commit
54c122a168
|
|
@ -148,6 +148,15 @@ func (s *OutputRoomEventConsumer) onRedactEvent(
|
||||||
log.WithError(err).Error("RedactEvent error'd")
|
log.WithError(err).Error("RedactEvent error'd")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = s.db.RedactRelations(ctx, msg.RedactedBecause.RoomID(), msg.RedactedEventID); err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"room_id": msg.RedactedBecause.RoomID(),
|
||||||
|
"event_id": msg.RedactedBecause.EventID(),
|
||||||
|
"redacted_event_id": msg.RedactedEventID,
|
||||||
|
}).WithError(err).Warn("Failed to redact relations")
|
||||||
|
}
|
||||||
|
|
||||||
// fake a room event so we notify clients about the redaction, as if it were
|
// fake a room event so we notify clients about the redaction, as if it were
|
||||||
// a normal event.
|
// a normal event.
|
||||||
return s.onNewRoomEvent(ctx, api.OutputNewRoomEvent{
|
return s.onNewRoomEvent(ctx, api.OutputNewRoomEvent{
|
||||||
|
|
@ -322,6 +331,14 @@ func (s *OutputRoomEventConsumer) onOldRoomEvent(
|
||||||
}).WithError(err).Warn("failed to index fulltext element")
|
}).WithError(err).Warn("failed to index fulltext element")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = s.db.UpdateRelations(ctx, ev); err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"room_id": ev.RoomID(),
|
||||||
|
"event_id": ev.EventID(),
|
||||||
|
"type": ev.Type(),
|
||||||
|
}).WithError(err).Warn("Failed to update relations")
|
||||||
|
}
|
||||||
|
|
||||||
if pduPos, err = s.notifyJoinedPeeks(ctx, ev, pduPos); err != nil {
|
if pduPos, err = s.notifyJoinedPeeks(ctx, ev, pduPos); err != nil {
|
||||||
log.WithError(err).Errorf("Failed to notifyJoinedPeeks for PDU pos %d", pduPos)
|
log.WithError(err).Errorf("Failed to notifyJoinedPeeks for PDU pos %d", pduPos)
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,7 @@ type Database interface {
|
||||||
UpdateIgnoresForUser(ctx context.Context, userID string, ignores *types.IgnoredUsers) error
|
UpdateIgnoresForUser(ctx context.Context, userID string, ignores *types.IgnoredUsers) error
|
||||||
ReIndex(ctx context.Context, limit, afterID int64) (map[int64]gomatrixserverlib.HeaderedEvent, error)
|
ReIndex(ctx context.Context, limit, afterID int64) (map[int64]gomatrixserverlib.HeaderedEvent, error)
|
||||||
UpdateRelations(ctx context.Context, event *gomatrixserverlib.HeaderedEvent) error
|
UpdateRelations(ctx context.Context, event *gomatrixserverlib.HeaderedEvent) error
|
||||||
|
RedactRelations(ctx context.Context, roomID, redactedEventID string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type Presence interface {
|
type Presence interface {
|
||||||
|
|
|
||||||
|
|
@ -601,9 +601,7 @@ func (d *Database) UpdateRelations(ctx context.Context, event *gomatrixserverlib
|
||||||
case content.Relations.RelationType == "":
|
case content.Relations.RelationType == "":
|
||||||
return nil
|
return nil
|
||||||
case event.Type() == gomatrixserverlib.MRoomRedaction:
|
case event.Type() == gomatrixserverlib.MRoomRedaction:
|
||||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
return nil
|
||||||
return d.Relations.DeleteRelation(ctx, txn, event.RoomID(), event.Redacts())
|
|
||||||
})
|
|
||||||
default:
|
default:
|
||||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
@ -618,3 +616,9 @@ func (d *Database) UpdateRelations(ctx context.Context, event *gomatrixserverlib
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Database) RedactRelations(ctx context.Context, roomID, redactedEventID string) error {
|
||||||
|
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||||
|
return d.Relations.DeleteRelation(ctx, txn, roomID, redactedEventID)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue