mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
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
This commit is contained in:
@@ -263,10 +263,11 @@ class GuildChannel extends BaseChannel {
|
||||
return new PermissionsBitField(PermissionsBitField.All).freeze();
|
||||
}
|
||||
|
||||
const basePermissions = new PermissionsBitField([role.permissions, role.guild.roles.everyone.permissions]);
|
||||
const everyoneOverwrites = this.permissionOverwrites.cache.get(this.guild.id);
|
||||
const roleOverwrites = this.permissionOverwrites.cache.get(role.id);
|
||||
|
||||
return role.permissions
|
||||
return basePermissions
|
||||
.remove(everyoneOverwrites?.deny ?? PermissionsBitField.DefaultBit)
|
||||
.add(everyoneOverwrites?.allow ?? PermissionsBitField.DefaultBit)
|
||||
.remove(roleOverwrites?.deny ?? PermissionsBitField.DefaultBit)
|
||||
|
||||
Reference in New Issue
Block a user