mirror of
https://github.com/tulir/mautrix-whatsapp
synced 2024-06-14 17:08:21 +02:00
Check that relaybot is logged in before relaying messages
This commit is contained in:
parent
5ffb20b85b
commit
2767819ae0
|
@ -37,6 +37,7 @@ var (
|
||||||
errUserNotConnected = errors.New("you are not connected to WhatsApp")
|
errUserNotConnected = errors.New("you are not connected to WhatsApp")
|
||||||
errDifferentUser = errors.New("user is not the recipient of this private chat portal")
|
errDifferentUser = errors.New("user is not the recipient of this private chat portal")
|
||||||
errUserNotLoggedIn = errors.New("user is not logged in and chat has no relay bot")
|
errUserNotLoggedIn = errors.New("user is not logged in and chat has no relay bot")
|
||||||
|
errRelaybotNotLoggedIn = errors.New("neither user nor relay bot of chat are logged in")
|
||||||
errMNoticeDisabled = errors.New("bridging m.notice messages is disabled")
|
errMNoticeDisabled = errors.New("bridging m.notice messages is disabled")
|
||||||
errUnexpectedParsedContentType = errors.New("unexpected parsed content type")
|
errUnexpectedParsedContentType = errors.New("unexpected parsed content type")
|
||||||
errInvalidGeoURI = errors.New("invalid `geo:` URI in message")
|
errInvalidGeoURI = errors.New("invalid `geo:` URI in message")
|
||||||
|
@ -111,7 +112,8 @@ func errorToStatusReason(err error) (reason event.MessageStatusReason, status ev
|
||||||
errors.Is(err, errUserNotConnected):
|
errors.Is(err, errUserNotConnected):
|
||||||
return event.MessageStatusGenericError, event.MessageStatusRetriable, true, true, ""
|
return event.MessageStatusGenericError, event.MessageStatusRetriable, true, true, ""
|
||||||
case errors.Is(err, errUserNotLoggedIn),
|
case errors.Is(err, errUserNotLoggedIn),
|
||||||
errors.Is(err, errDifferentUser):
|
errors.Is(err, errDifferentUser),
|
||||||
|
errors.Is(err, errRelaybotNotLoggedIn):
|
||||||
return event.MessageStatusGenericError, event.MessageStatusRetriable, true, false, ""
|
return event.MessageStatusGenericError, event.MessageStatusRetriable, true, false, ""
|
||||||
case errors.Is(err, errMessageDisconnected),
|
case errors.Is(err, errMessageDisconnected),
|
||||||
errors.Is(err, errMessageRetryDisconnected):
|
errors.Is(err, errMessageRetryDisconnected):
|
||||||
|
|
|
@ -4237,6 +4237,9 @@ func (portal *Portal) convertMatrixMessage(ctx context.Context, sender *User, ev
|
||||||
return nil, sender, extraMeta, errUserNotLoggedIn
|
return nil, sender, extraMeta, errUserNotLoggedIn
|
||||||
}
|
}
|
||||||
sender = portal.GetRelayUser()
|
sender = portal.GetRelayUser()
|
||||||
|
if !sender.IsLoggedIn() {
|
||||||
|
return nil, sender, extraMeta, errRelaybotNotLoggedIn
|
||||||
|
}
|
||||||
isRelay = true
|
isRelay = true
|
||||||
}
|
}
|
||||||
var editRootMsg *database.Message
|
var editRootMsg *database.Message
|
||||||
|
|
Loading…
Reference in a new issue