matrix-org / matrix-appservice-irc

Node.js IRC bridge for Matrix
Apache License 2.0
465 stars 150 forks source link

Allow graceful way for IRC channels to opt-out of bridging (without just banning the bridge)? #519

Open Svetlana-T opened 6 years ago

Svetlana-T commented 6 years ago

A matrix user pings out. In their absence someone says a message in a channel. Then the matrix user reconnects 20 mins later.

Naturally, I expect them to be unable to see that message because they weren't here.

However, the message gets relayed anyway, because while they pinged out, another matrix user was present in the channel.

This is confusing and for some channels may pose a privacy concern.

Please provide a way to resolve it, on per-channel basis if desired (although I'd rather have it fixed for everyone) without banning matrix from a channel.

Mikaela commented 6 years ago

I think this is a duplicate of https://github.com/matrix-org/matrix-appservice-irc/issues/448 ?

ara4n commented 6 years ago

448 provides a potential fix, however it's also possible that this was an element of https://github.com/matrix-org/matrix-appservice-irc/issues/212.

@Gryllida thanks for highlighting this again - in general it only happens in bad edge cases (i.e. race when the bridge restarts after crashing, as per #212), although if it's happening on 'business as usual' ping-outs then that's a more serious issue which hopefully #448 will mitigate.

ara4n commented 6 years ago

Actually, given the request here is for 'opt out of bridging', I'll keep this open for that as a feature request, given the other bugs already track the underlying issue.

ara4n commented 6 years ago

(assuming this was what was being requested here?)

ara4n commented 6 years ago

Thinking further about this (based on discussing with @leonerd and FN staff): how about we just make the bridge refuse to relay messages unless it is confident that everyone in the Matrix side of the room is currently bridged and connected into the IRC channel? (until we have per-message ACLs).

I guess the risk is that if some bad actor on the Matrix side is kicked or banned (or klined etc) on the IRC side, this then breaks bridging for the whole room.

Mikaela commented 6 years ago

Wouldn't that again be https://github.com/matrix-org/matrix-appservice-irc/issues/449 ?

Mikaela commented 6 years ago

Another relevant issue or the one which this could be a duplicate of would be https://github.com/matrix-org/matrix-appservice-irc/issues/215 in my opinion.

Flexmaen commented 6 years ago

Maybe it is a solution to leave the user in the room but mark him as away.

Staying in the room and having all the conversation will happen with other IRC clients, like Quassel. But as far as I understand the problem here is, that you don't even see the user in the room and assume he cannot read the current conversation.

Mikaela commented 3 years ago

Related request: allow channel ops to specify a custom message for the reason of being opted out of bridging.

Use-case scenario: a channel has a native Matrix room through Matterbridge/Heisenbridge/own-bridge and the channel would like to have Matrix users use their own bridge instead of simply attempting to ban the other bridge(s).