Browse Source

Check prev_content for all leave events

Tulir Asokan 3 years ago
parent
commit
c85b003fe8
1 changed files with 7 additions and 7 deletions
  1. 7 7
      matrix.go

+ 7 - 7
matrix.go

@@ -274,14 +274,14 @@ func (mx *MatrixHandler) HandleMembership(evt *event.Event) {
 	isSelf := id.UserID(evt.GetStateKey()) == evt.Sender
 
 	if content.Membership == event.MembershipLeave {
-		if isSelf {
-			if evt.Unsigned.PrevContent != nil {
-				_ = evt.Unsigned.PrevContent.ParseRaw(evt.Type)
-				prevContent, ok := evt.Unsigned.PrevContent.Parsed.(*event.MemberEventContent)
-				if ok && prevContent.Membership != "join" {
-					return
-				}
+		if evt.Unsigned.PrevContent != nil {
+			_ = evt.Unsigned.PrevContent.ParseRaw(evt.Type)
+			prevContent, ok := evt.Unsigned.PrevContent.Parsed.(*event.MemberEventContent)
+			if ok && prevContent.Membership != "join" {
+				return
 			}
+		}
+		if isSelf {
 			portal.HandleMatrixLeave(user)
 		} else {
 			portal.HandleMatrixKick(user, evt)