directdownload: don't panic if user not logged in

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-11-08 02:34:52 -07:00
parent d1d3c18670
commit 40f259da5e
2 changed files with 8 additions and 1 deletions
+1 -1
View File
@@ -625,7 +625,7 @@ func (t *TelegramClient) getUserInfoFromTelegramUser(ctx context.Context, u tg.U
}
func (t *TelegramClient) IsLoggedIn() bool {
return t.client != nil && t.userLogin.Metadata.(*UserLoginMetadata).Session.HasAuthKey()
return t != nil && t.client != nil && t.userLogin.Metadata.(*UserLoginMetadata).Session.HasAuthKey()
}
func (t *TelegramClient) LogoutRemote(ctx context.Context) {
+7
View File
@@ -7,6 +7,7 @@ import (
"github.com/gotd/td/tg"
"github.com/rs/zerolog"
"maunium.net/go/mautrix"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/mediaproxy"
@@ -47,6 +48,12 @@ func (tc *TelegramConnector) Download(ctx context.Context, mediaID networkid.Med
}
client := userLogin.Client.(*TelegramClient)
if !client.IsLoggedIn() {
log.Error().Msg("User is not logged in, returning media proxy error")
return nil, mautrix.MForbidden.WithMessage("User not logged in")
}
var messages tg.ModifiedMessagesMessages
switch info.PeerType {
case ids.PeerTypeUser, ids.PeerTypeChat: