Account everyone overwrite when resolving permissions

This commit is contained in:
qeled
2015-10-30 14:00:30 +03:00
parent 22e41a3b6e
commit e1117bc798

View File

@@ -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;