Fix regression in autojoining with legacy tokens (slack). Fixes #651 (#848)

This commit is contained in:
Wim 2019-06-14 00:42:55 +02:00 committed by GitHub
parent 53dfb78215
commit 5619a75b05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View File

@ -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 {

View File

@ -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