bridgev2/space: let network connector customize personal filtering space

This commit is contained in:
Tulir Asokan 2025-11-12 14:57:18 +02:00
commit 4913b123f1
2 changed files with 10 additions and 0 deletions

View file

@ -18,6 +18,7 @@ import (
"go.mau.fi/util/ptr"
"go.mau.fi/util/random"
"maunium.net/go/mautrix"
"maunium.net/go/mautrix/bridgev2/database"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/event"
@ -294,6 +295,11 @@ type PortalBridgeInfoFillingNetwork interface {
FillPortalBridgeInfo(portal *Portal, content *event.BridgeEventContent)
}
type PersonalFilteringCustomizingNetworkAPI interface {
NetworkAPI
CustomizePersonalFilteringSpace(req *mautrix.ReqCreateRoom)
}
// ConfigValidatingNetwork is an optional interface that network connectors can implement to validate config fields
// before the bridge is started.
//

View file

@ -172,6 +172,10 @@ func (ul *UserLogin) GetSpaceRoom(ctx context.Context) (id.RoomID, error) {
// TODO remove this after initial_members is supported in hungryserv
req.BeeperAutoJoinInvites = true
}
pfc, ok := ul.Client.(PersonalFilteringCustomizingNetworkAPI)
if ok {
pfc.CustomizePersonalFilteringSpace(req)
}
ul.SpaceRoom, err = ul.Bridge.Bot.CreateRoom(ctx, req)
if err != nil {
return "", fmt.Errorf("failed to create space room: %w", err)