bridgev2/portal: ensure join is sent using target intent

This commit is contained in:
Tulir Asokan 2025-11-12 23:09:49 +02:00
commit 85e25748a8

View file

@ -4363,7 +4363,11 @@ func (portal *Portal) syncParticipants(
currentMember.Membership = event.MembershipLeave
}
}
_, err = portal.sendStateWithIntentOrBot(ctx, thisEvtSender, event.StateMember, extraUserID.String(), wrappedContent, ts)
if content.Membership == event.MembershipJoin && intent != nil && intent.GetMXID() == extraUserID {
_, err = intent.SendState(ctx, portal.MXID, event.StateMember, extraUserID.String(), wrappedContent, ts)
} else {
_, err = portal.sendStateWithIntentOrBot(ctx, thisEvtSender, event.StateMember, extraUserID.String(), wrappedContent, ts)
}
if err != nil {
addLogContext(log.Err(err)).
Str("new_membership", string(content.Membership)).