From 1599249d7543e6174047218880a18690ede77075 Mon Sep 17 00:00:00 2001 From: Christian Paul <christianp@matrix.org> Date: Tue, 5 Jan 2021 17:01:56 +0100 Subject: [PATCH] Add config: bridge.disablePortalBridging --- config/config.sample.yaml | 3 +++ config/config.schema.yaml | 2 ++ src/config.ts | 1 + src/discordas.ts | 22 ++++++++++++---------- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/config/config.sample.yaml b/config/config.sample.yaml index 07c3539..43d5913 100644 --- a/config/config.sample.yaml +++ b/config/config.sample.yaml @@ -23,6 +23,9 @@ bridge: disableTypingNotifications: false # Disable deleting messages on Discord if a message is redacted on Matrix. disableDeletionForwarding: false + # Disable portal bridging, where Matrix users can search for unbridged Discord + # rooms on their Matrix server. + disablePortalBridging: false # Enable users to bridge rooms using !discord commands. See # https://t2bot.io/discord for instructions. enableSelfServiceBridging: false diff --git a/config/config.schema.yaml b/config/config.schema.yaml index 560508e..1a2381c 100644 --- a/config/config.schema.yaml +++ b/config/config.schema.yaml @@ -20,6 +20,8 @@ properties: type: "boolean" disableDeletionForwarding: type: "boolean" + disablePortalBridging: + type: "boolean" enableSelfServiceBridging: type: "boolean" disableReadReceipts: diff --git a/src/config.ts b/src/config.ts index 51b6c2a..3747e66 100644 --- a/src/config.ts +++ b/src/config.ts @@ -89,6 +89,7 @@ class DiscordBridgeConfigBridge { public disableDiscordMentions: boolean; public disableDeletionForwarding: boolean; public enableSelfServiceBridging: boolean; + public disablePortalBridging: boolean; public disableReadReceipts: boolean; public disableEveryoneMention: boolean = false; public disableHereMention: boolean = false; diff --git a/src/discordas.ts b/src/discordas.ts index d56bc1f..4420070 100644 --- a/src/discordas.ts +++ b/src/discordas.ts @@ -186,16 +186,18 @@ async function run() { res.status(200).send(""); }); - // tslint:disable-next-line:no-any - appservice.on("query.room", async (roomAlias: string, createRoom: (opts: any) => Promise<void>) => { - try { - const createRoomOpts = await roomhandler.OnAliasQuery(roomAlias); - await createRoom(createRoomOpts); - await roomhandler.OnAliasQueried(roomAlias, createRoomOpts.__roomId); - } catch (err) { - log.error("Exception thrown while handling \"query.room\" event", err); - } - }); + if (config.bridge.disablePortalBridging !== true) { + // tslint:disable-next-line:no-any + appservice.on("query.room", async (roomAlias: string, createRoom: (opts: any) => Promise<void>) => { + try { + const createRoomOpts = await roomhandler.OnAliasQuery(roomAlias); + await createRoom(createRoomOpts); + await roomhandler.OnAliasQueried(roomAlias, createRoomOpts.__roomId); + } catch (err) { + log.error("Exception thrown while handling \"query.room\" event", err); + } + }); + } appservice.on("room.event", async (roomId: string, event: IMatrixEvent) => { try { -- GitLab