diff options
author | Wim <wim@42.be> | 2019-06-14 00:42:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-14 00:42:55 +0200 |
commit | 5619a75b05f932bd45c8eb7b32b6db5d1dbfaf93 (patch) | |
tree | 2181d5ab1b6c527f8736dcf9aa791dcc7a06f30f /bridge | |
parent | 53dfb78215688bcc84a2f3721a995c061544ce5e (diff) | |
download | matterbridge-msglm-5619a75b05f932bd45c8eb7b32b6db5d1dbfaf93.tar.gz matterbridge-msglm-5619a75b05f932bd45c8eb7b32b6db5d1dbfaf93.tar.bz2 matterbridge-msglm-5619a75b05f932bd45c8eb7b32b6db5d1dbfaf93.zip |
Fix regression in autojoining with legacy tokens (slack). Fixes #651 (#848)
Diffstat (limited to 'bridge')
-rw-r--r-- | bridge/slack/legacy.go | 4 | ||||
-rw-r--r-- | bridge/slack/slack.go | 16 |
2 files changed, 18 insertions, 2 deletions
diff --git a/bridge/slack/legacy.go b/bridge/slack/legacy.go index 0c9f5ba4..5c2eca20 100644 --- a/bridge/slack/legacy.go +++ b/bridge/slack/legacy.go @@ -13,7 +13,9 @@ type BLegacy struct { } func NewLegacy(cfg *bridge.Config) bridge.Bridger { - return &BLegacy{Bslack: newBridge(cfg)} + b := &BLegacy{Bslack: newBridge(cfg)} + b.legacy = true + return b } func (b *BLegacy) Connect() error { diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go index 36b74b99..2aaa2cb1 100644 --- a/bridge/slack/slack.go +++ b/bridge/slack/slack.go @@ -32,6 +32,7 @@ type Bslack struct { channels *channels users *users + legacy bool } const ( @@ -151,6 +152,18 @@ func (b *Bslack) JoinChannel(channel config.ChannelInfo) error { return nil } + // try to join a channel when in legacy + if b.legacy { + _, err := b.sc.JoinChannel(channel.Name) + if err != nil { + switch err.Error() { + case "name_taken", "restricted_action": + case "default": + return err + } + } + } + b.channels.populateChannels(false) channelInfo, err := b.channels.getChannel(channel.Name) @@ -163,7 +176,8 @@ func (b *Bslack) JoinChannel(channel config.ChannelInfo) error { channel.Name = channelInfo.Name } - if !channelInfo.IsMember { + // we can't join a channel unless we are using legacy tokens #651 + if !channelInfo.IsMember && !b.legacy { return fmt.Errorf("slack integration that matterbridge is using is not member of channel '%s', please add it manually", channelInfo.Name) } return nil |