handlematrix: add more checks to member handling

This commit is contained in:
Tulir Asokan
2026-05-02 00:14:19 +03:00
parent 5a363d3778
commit df7dee6edc
3 changed files with 13 additions and 6 deletions

5
go.mod
View File

@@ -27,7 +27,7 @@ require (
github.com/rs/zerolog v1.35.0
github.com/stretchr/testify v1.11.1
github.com/tidwall/gjson v1.18.0
go.mau.fi/util v0.9.9-0.20260430092340-8772e7714ea5
go.mau.fi/util v0.9.9-0.20260501211038-7535d5590b78
go.mau.fi/webp v0.2.0
go.mau.fi/zerozap v0.1.2
go.opentelemetry.io/otel v1.42.0
@@ -42,7 +42,7 @@ require (
golang.org/x/sync v0.20.0
golang.org/x/tools v0.44.0
gopkg.in/yaml.v3 v3.0.1
maunium.net/go/mautrix v0.27.1-0.20260430160443-60db160fa51d
maunium.net/go/mautrix v0.27.1-0.20260501211233-3b91c736c6ea
rsc.io/qr v0.2.0
)
@@ -70,6 +70,7 @@ require (
github.com/tidwall/pretty v1.2.1 // indirect
github.com/tidwall/sjson v1.2.5 // indirect
github.com/yuin/goldmark v1.8.2 // indirect
go.mau.fi/customresolver v0.0.0-20260501203937-b4612b0456c7 // indirect
go.mau.fi/zeroconfig v0.2.0 // indirect
go.uber.org/ratelimit v0.3.1 // indirect
golang.org/x/mod v0.35.0 // indirect

10
go.sum
View File

@@ -112,8 +112,10 @@ github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.8.2 h1:kEGpgqJXdgbkhcOgBxkC0X0PmoPG1ZyoZ117rDVp4zE=
github.com/yuin/goldmark v1.8.2/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
go.mau.fi/util v0.9.9-0.20260430092340-8772e7714ea5 h1:cNm4gkt7j907g1Q4XvyNKW8tTM8BaU91Kbfa5GGyiCs=
go.mau.fi/util v0.9.9-0.20260430092340-8772e7714ea5/go.mod h1:up/5mbzH2M1pSBNXqRxODn8dg/hEKbLJu92W4/SNAX0=
go.mau.fi/customresolver v0.0.0-20260501203937-b4612b0456c7 h1:nYBEp3eCuLj+pIbwmV+YQV8U5/uNaN2xyv0srC9/eO8=
go.mau.fi/customresolver v0.0.0-20260501203937-b4612b0456c7/go.mod h1:y6y+gh+5QxQCx7TEgYYCu9rlFGZPWxhBkOjIXVrmtC0=
go.mau.fi/util v0.9.9-0.20260501211038-7535d5590b78 h1:MRz5RQxXgohVSulsFHqokfZDJzhqk1w+fDQxJksxbZc=
go.mau.fi/util v0.9.9-0.20260501211038-7535d5590b78/go.mod h1:up/5mbzH2M1pSBNXqRxODn8dg/hEKbLJu92W4/SNAX0=
go.mau.fi/webp v0.2.0 h1:QVMenHw7JDb4vall5sV75JNBQj9Hw4u8AKbi1QetHvg=
go.mau.fi/webp v0.2.0/go.mod h1:VSg9MyODn12Mb5pyG0NIyNFhujrmoFSsZBs8syOZD1Q=
go.mau.fi/zeroconfig v0.2.0 h1:e/OGEERqVRRKlgaro7E6bh8xXiKFSXB3eNNIud7FUjU=
@@ -236,7 +238,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
maunium.net/go/mautrix v0.27.1-0.20260430160443-60db160fa51d h1:kOxWOSl5sYsTBPgGeeEufHBNGRjlPXppmDAs8G0XIkI=
maunium.net/go/mautrix v0.27.1-0.20260430160443-60db160fa51d/go.mod h1:4fZ0M0xB5ZtueQI65RilX28J/3794BeK+LaCg4U61Jk=
maunium.net/go/mautrix v0.27.1-0.20260501211233-3b91c736c6ea h1:9X2ch9soXsgcaMGaaynZ0sRukglV3TWbQNXzYFtcPQA=
maunium.net/go/mautrix v0.27.1-0.20260501211233-3b91c736c6ea/go.mod h1:3/KH7dejbdD9zXL5YmjzAuJebahrjplcRq6IU5mAfVY=
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=

View File

@@ -1392,6 +1392,8 @@ func (tc *TelegramClient) HandleMatrixMembership(ctx context.Context, msg *bridg
case bridgev2.Invite, bridgev2.AcceptKnock:
if targetInputUser == nil {
return nil, wrapUnsupportedError(fmt.Errorf("can't invite non-user peer type %s", targetPeerType))
} else if tc.metadata.IsBot {
return nil, wrapUnsupportedError(fmt.Errorf("can't invite users as a bot"))
}
_, err = tc.client.API().ChannelsInviteToChannel(ctx, &tg.ChannelsInviteToChannelRequest{
Channel: inputChannel,
@@ -1419,6 +1421,8 @@ func (tc *TelegramClient) HandleMatrixMembership(ctx context.Context, msg *bridg
case bridgev2.Invite, bridgev2.AcceptKnock:
if targetInputUser == nil {
return nil, wrapUnsupportedError(fmt.Errorf("can't invite non-user peer type %s", targetPeerType))
} else if tc.metadata.IsBot {
return nil, wrapUnsupportedError(fmt.Errorf("can't invite users as a bot"))
}
_, err = tc.client.API().MessagesAddChatUser(ctx, &tg.MessagesAddChatUserRequest{
ChatID: chatID,