mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 10:33:11 -06:00
Delete user profile in new consumer
This commit is contained in:
parent
f3b9514f18
commit
ccef3b00b7
|
|
@ -103,9 +103,31 @@ func (s *OutputRoomEventConsumer) onMessage(ctx context.Context, msgs []*nats.Ms
|
|||
}).WithError(err).Errorf("userapi consumer: process room event failure")
|
||||
}
|
||||
|
||||
if err := s.deleteProfile(ctx, event); err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
"event_id": event.EventID(),
|
||||
}).WithError(err).WithField("user_id", *event.StateKey()).Warn("userapi consumer: failed to delete user profile")
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func (s *OutputRoomEventConsumer) deleteProfile(ctx context.Context, event *gomatrixserverlib.HeaderedEvent) error {
|
||||
if event.Type() != gomatrixserverlib.MRoomMember || event.StateKey() == nil {
|
||||
return nil
|
||||
}
|
||||
localPart, domain, err := gomatrixserverlib.SplitID('@', *event.StateKey())
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
// Profiles from ourselves are updated by API calls, don't delete them.
|
||||
if domain == s.cfg.Matrix.ServerName {
|
||||
return nil
|
||||
}
|
||||
log.WithField("user_id", *event.StateKey()).Debug("Deleting remote user profile")
|
||||
return s.db.DeleteProfile(ctx, localPart, domain)
|
||||
}
|
||||
|
||||
func (s *OutputRoomEventConsumer) processMessage(ctx context.Context, event *gomatrixserverlib.HeaderedEvent, streamPos uint64) error {
|
||||
members, roomSize, err := s.localRoomMembers(ctx, event.RoomID())
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in a new issue