Remove member from invited_members when he joins.
parent
2a0c6c6474
commit
ff5f638b60
|
@ -363,19 +363,22 @@ impl Room {
|
||||||
fn add_member(&mut self, event: &MemberEvent) -> bool {
|
fn add_member(&mut self, event: &MemberEvent) -> bool {
|
||||||
let new_member = RoomMember::new(event);
|
let new_member = RoomMember::new(event);
|
||||||
|
|
||||||
if self.joined_members.contains_key(&new_member.user_id)
|
match event.membership_change() {
|
||||||
|| self.invited_members.contains_key(&new_member.user_id)
|
MembershipChange::Joined => {
|
||||||
{
|
// Since the member is now joined, he shouldn't be tracked as an invited member any
|
||||||
return false;
|
// longer.
|
||||||
|
if self.invited_members.contains_key(&new_member.user_id) {
|
||||||
|
self.invited_members.remove(&new_member.user_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
self.joined_members
|
||||||
|
.insert(new_member.user_id.clone(), new_member.clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
match event.membership_change() {
|
|
||||||
MembershipChange::Joined => self
|
|
||||||
.joined_members
|
|
||||||
.insert(new_member.user_id.clone(), new_member.clone()),
|
|
||||||
MembershipChange::Invited => self
|
MembershipChange::Invited => self
|
||||||
.invited_members
|
.invited_members
|
||||||
.insert(new_member.user_id.clone(), new_member.clone()),
|
.insert(new_member.user_id.clone(), new_member.clone()),
|
||||||
|
|
||||||
_ => {
|
_ => {
|
||||||
panic!("Room::add_member called on an event that is neither a join nor an invite.")
|
panic!("Room::add_member called on an event that is neither a join nor an invite.")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue