Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 14cf3f24d1c48058a8f844337cbc920e1ed3f3bd Author: Qais Patankar <qaisjp@gmail.com> Date: Tue Mar 17 16:04:38 2020 +0000 Fix #1040: spotty webhook permission verification diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index c081791..7661a1d 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -11410 +11410 @@ func (b *Bdiscord) Connect() error {   b.Log.Infof("Server=\"%s\" # Server ID", guild.ID)   }   } -   if err != nil {   return err   } +   b.channelsMutex.RLock()   if b.GetString("WebhookURL") == "" {   for _, channel := range b.channels { @@ -1289 +12813 @@ func (b *Bdiscord) Connect() error {   for _, info := range b.Channels {   id := b.getChannelID(info.Name) // note(qaisjp): this readlocks channelsMutex   b.Log.Debugf("Verifying PermissionManageWebhooks for %s with ID %s", info.ID, id) - perms, permsErr := b.c.State.UserChannelPermissions(userinfo.ID, id) + perms, permsErr := b.c.UserChannelPermissions(userinfo.ID, id) +   manageWebhooks := discordgo.PermissionManageWebhooks - if permsErr != nil || perms&manageWebhooks != manageWebhooks { + if permsErr != nil { + b.Log.Warnf("Can't manage webhooks in channel \"%s\", because: %s", info.Name, permsErr.Error()) + b.canEditWebhooks = false + } else if perms&manageWebhooks != manageWebhooks {   b.Log.Warnf("Can't manage webhooks in channel \"%s\"", info.Name)   b.canEditWebhooks = false   }