From d437cecb3f8d10fa3f726f5806df1e7d972bbbb4 Mon Sep 17 00:00:00 2001 From: bdistin Date: Fri, 17 Aug 2018 02:46:09 -0500 Subject: [PATCH] Fix permission checking for Administrator channel overwrites (#2756) --- src/structures/GuildChannel.js | 6 +++--- src/structures/Message.js | 4 ++-- src/structures/VoiceChannel.js | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/structures/GuildChannel.js b/src/structures/GuildChannel.js index 287ee7a87..9467371f9 100644 --- a/src/structures/GuildChannel.js +++ b/src/structures/GuildChannel.js @@ -290,7 +290,7 @@ class GuildChannel extends Channel { get members() { const members = new Collection(); for (const member of this.guild.members.values()) { - if (this.permissionsFor(member).has('VIEW_CHANNEL')) { + if (this.permissionsFor(member).has('VIEW_CHANNEL', false)) { members.set(member.id, member); } } @@ -537,7 +537,7 @@ class GuildChannel extends Channel { * @readonly */ get deletable() { - return this.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_CHANNELS); + return this.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_CHANNELS, false); } /** @@ -549,7 +549,7 @@ class GuildChannel extends Channel { if (this.client.user.id === this.guild.ownerID) return true; const permissions = this.permissionsFor(this.client.user); if (!permissions) return false; - return permissions.has([Permissions.FLAGS.MANAGE_CHANNELS, Permissions.FLAGS.VIEW_CHANNEL]); + return permissions.has([Permissions.FLAGS.MANAGE_CHANNELS, Permissions.FLAGS.VIEW_CHANNEL], false); } /** diff --git a/src/structures/Message.js b/src/structures/Message.js index a443b234a..96ffacbb7 100644 --- a/src/structures/Message.js +++ b/src/structures/Message.js @@ -335,7 +335,7 @@ class Message extends Base { */ get deletable() { return !this.deleted && (this.author.id === this.client.user.id || (this.guild && - this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES) + this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES, false) )); } @@ -346,7 +346,7 @@ class Message extends Base { */ get pinnable() { return !this.guild || - this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES); + this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES, false); } /** diff --git a/src/structures/VoiceChannel.js b/src/structures/VoiceChannel.js index 048342134..aee01b6f0 100644 --- a/src/structures/VoiceChannel.js +++ b/src/structures/VoiceChannel.js @@ -65,7 +65,7 @@ class VoiceChannel extends GuildChannel { * @readonly */ get deletable() { - return super.deletable && this.permissionsFor(this.client.user).has(Permissions.FLAGS.CONNECT); + return super.deletable && this.permissionsFor(this.client.user).has(Permissions.FLAGS.CONNECT, false); } /** @@ -75,8 +75,8 @@ class VoiceChannel extends GuildChannel { */ get joinable() { if (browser) return false; - if (!this.permissionsFor(this.client.user).has('CONNECT')) return false; - if (this.full && !this.permissionsFor(this.client.user).has('MOVE_MEMBERS')) return false; + if (!this.permissionsFor(this.client.user).has('CONNECT', false)) return false; + if (this.full && !this.permissionsFor(this.client.user).has('MOVE_MEMBERS', false)) return false; return true; } @@ -86,7 +86,7 @@ class VoiceChannel extends GuildChannel { * @readonly */ get speakable() { - return this.permissionsFor(this.client.user).has('SPEAK'); + return this.permissionsFor(this.client.user).has('SPEAK', false); } /**