From 1420f6805070ed70f4bb60b8abafb96541ff6536 Mon Sep 17 00:00:00 2001 From: Qais Patankar Date: Sat, 8 Feb 2020 14:13:23 +0000 Subject: [PATCH] Check only bridged channels for PermManageWebhooks (discord) (#1001) * Check only bridged channels for PermManageWebhooks * add note --- bridge/discord/discord.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go index d247b951..e81d0783 100644 --- a/bridge/discord/discord.go +++ b/bridge/discord/discord.go @@ -125,12 +125,13 @@ func (b *Bdiscord) Connect() error { } } else { b.canEditWebhooks = true - for _, channel := range b.channels { - b.Log.Debugf("found channel %#v; verifying PermissionManageWebhooks", channel) - perms, permsErr := b.c.State.UserChannelPermissions(userinfo.ID, channel.ID) + 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) manageWebhooks := discordgo.PermissionManageWebhooks if permsErr != nil || perms&manageWebhooks != manageWebhooks { - b.Log.Warnf("Can't manage webhooks in channel \"%s\"", channel.Name) + b.Log.Warnf("Can't manage webhooks in channel \"%s\"", info.Name) b.canEditWebhooks = false } }