瀏覽代碼

Don't drop messages even if database says authenticated user is not in chat

Tulir Asokan 5 年之前
父節點
當前提交
14f039f5a4
共有 1 個文件被更改,包括 9 次插入4 次删除
  1. 9 4
      portal.go

+ 9 - 4
portal.go

@@ -1223,11 +1223,16 @@ func (portal *Portal) HandleMatrixMessage(sender *User, evt *mautrix.Event) {
 	relaybotFormatted := false
 	if sender.NeedsRelaybot(portal) {
 		if !portal.HasRelaybot() {
-			portal.log.Debugln("Ignoring message from", sender.MXID, "in chat with no relaybot")
-			return
+			if user.HasSession() {
+				portal.log.Debugln("Database says", sender.MXID, "not in chat and no relaybot, but trying to send anyway")
+			} else {
+				portal.log.Debugln("Ignoring message from", sender.MXID, "in chat with no relaybot")
+				return
+			}
+		} else {
+			relaybotFormatted = portal.addRelaybotFormat(sender, evt)
+			sender = portal.bridge.Relaybot
 		}
-		relaybotFormatted = portal.addRelaybotFormat(sender, evt)
-		sender = portal.bridge.Relaybot
 	}
 	var err error
 	switch evt.Content.MsgType {