Compare commits
2 commits
c1b905f49d
...
6af4576fed
| Author | SHA1 | Date | |
|---|---|---|---|
| 6af4576fed | |||
| 61908d1ac2 |
1 changed files with 6 additions and 1 deletions
|
|
@ -184,7 +184,12 @@ func (s *ChannelStore) GetParticipant(ctx context.Context, viewerUserID, channel
|
||||||
if errors.Is(err, domain.ErrChannelPrivate) {
|
if errors.Is(err, domain.ErrChannelPrivate) {
|
||||||
return domain.ChannelMember{}, domain.ErrUserNotParticipant
|
return domain.ChannelMember{}, domain.ErrUserNotParticipant
|
||||||
}
|
}
|
||||||
if err == nil && participantUserID == viewerUserID && member.Status == domain.ChannelMemberLeft {
|
// A stale row for a former member (left/kicked) is not a current
|
||||||
|
// participant for any caller, not just a self-check: channels.getParticipant
|
||||||
|
// on someone who has left must surface USER_NOT_PARTICIPANT like a missing
|
||||||
|
// row does, or callers get a "successful" ChannelParticipantLeft result for
|
||||||
|
// what protocol-wise is an absent participant.
|
||||||
|
if err == nil && member.Status != domain.ChannelMemberActive {
|
||||||
return domain.ChannelMember{}, domain.ErrUserNotParticipant
|
return domain.ChannelMember{}, domain.ErrUserNotParticipant
|
||||||
}
|
}
|
||||||
return member, err
|
return member, err
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue