diff --git a/pkg/connector/client.go b/pkg/connector/client.go index 7f889234..12566e5b 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -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) { diff --git a/pkg/connector/directdownload.go b/pkg/connector/directdownload.go index a79cac5b..8d0589cb 100644 --- a/pkg/connector/directdownload.go +++ b/pkg/connector/directdownload.go @@ -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: