From 22e41a3b6e30a364b74190b2564b39e68b30082e Mon Sep 17 00:00:00 2001 From: qeled Date: Fri, 30 Oct 2015 12:13:52 +0300 Subject: [PATCH 1/2] Fix undefined getter reference --- src/ChannelPermissions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChannelPermissions.js b/src/ChannelPermissions.js index 83b7bed0b..aeebd8d89 100644 --- a/src/ChannelPermissions.js +++ b/src/ChannelPermissions.js @@ -62,7 +62,7 @@ class ChannelPermissions { } } - ad(this.canCreateInstantInvite, 0); + ad(this.createInstantInvite, 0); ad(this.manageRoles, 3); ad(this.manageChannels, 4); ad(this.readMessages, 10); From e1117bc798cacd90afd7d3b91bcdb49a83e9066b Mon Sep 17 00:00:00 2001 From: qeled Date: Fri, 30 Oct 2015 14:00:30 +0300 Subject: [PATCH 2/2] Account everyone overwrite when resolving permissions --- src/Member.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Member.js b/src/Member.js index 949ddf187..4ec7e0743 100644 --- a/src/Member.js +++ b/src/Member.js @@ -66,7 +66,14 @@ class Member extends User{ var affectingOverwrites = []; var affectingMemberOverwrites = []; - + + for(var overwrite of channel.roles) { + if(overwrite.id == this.serverID) { // @everyone for channel + affectingOverwrites.push(overwrite); + break; + } + } + for(var overwrite of channel.roles){ if(overwrite.id === this.id && overwrite.type === "member"){ affectingMemberOverwrites.push(overwrite); @@ -74,14 +81,13 @@ class Member extends User{ affectingOverwrites.push(overwrite); } } - - + if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){ return this.evalPerms; } var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed); - + for(var overwrite of affectingOverwrites){ finalPacked = finalPacked & ~overwrite.deny; finalPacked = finalPacked | overwrite.allow;