Skip to content

Commit 55ab46d

Browse files
authored
fix(GuildChannel): account for everyone base permissions (#11053)
When calculating permissions after overwrites, the base permission of the at-everyone role need to be accounted for. Role#permissions is not sufficient, as it only describes base permissions of the role itself. fixes #11052
1 parent 4b6060d commit 55ab46d

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

packages/discord.js/src/structures/GuildChannel.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,11 @@ class GuildChannel extends BaseChannel {
263263
return new PermissionsBitField(PermissionsBitField.All).freeze();
264264
}
265265

266+
const basePermissions = new PermissionsBitField([role.permissions, role.guild.roles.everyone.permissions]);
266267
const everyoneOverwrites = this.permissionOverwrites.cache.get(this.guild.id);
267268
const roleOverwrites = this.permissionOverwrites.cache.get(role.id);
268269

269-
return role.permissions
270+
return basePermissions
270271
.remove(everyoneOverwrites?.deny ?? PermissionsBitField.DefaultBit)
271272
.add(everyoneOverwrites?.allow ?? PermissionsBitField.DefaultBit)
272273
.remove(roleOverwrites?.deny ?? PermissionsBitField.DefaultBit)

0 commit comments

Comments
 (0)