Fixed permission resolution

This commit is contained in:
hydrabolt
2015-10-29 15:45:48 +00:00
parent 0938382e51
commit 626c3208b9
5 changed files with 42 additions and 69 deletions

View File

@@ -31,14 +31,14 @@ class Member extends User{
var basePerms = this.roles, //cache roles as it can be slightly expensive
basePerm = basePerms[0].packed;
basePerms = basePerms || [];
for(var perm of basePerms){
basePerm = basePerm | perm.packed;
console.log(perm.name +" - "+perm.mentionEveryone);
}
return new ServerPermissions({
permissions : basePerm
});
return new EvaluatedPermissions(basePerm);
}
removeRole(role){
@@ -78,24 +78,22 @@ class Member extends User{
if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){
return new EvaluatedPermissions(this.evalPerms.packed);
return this.evalPerms;
}
var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed);
for(var overwrite of affectingOverwrites){
finalPacked = finalPacked & ~overwrite.deny;
}
console.log(affectingOverwrites);
console.log("\n\n\n");
console.log(affectingMemberOverwrites);
for(var overwrite of affectingOverwrites){
finalPacked = finalPacked & ~overwrite.deny;
finalPacked = finalPacked | overwrite.allow;
}
for(var overwrite of affectingMemberOverwrites){
finalPacked = finalPacked & ~overwrite.deny;
}
for(var overwrite of affectingMemberOverwrites){
finalPacked = finalPacked | overwrite.allow;
}

View File

@@ -12,7 +12,7 @@ class ServerPermissions {
this.position = data.position || 1;
this.hoist = data.hoist || false;
this.color = data.color || 0;
this.packed = data.permissions || 36953089;
this.packed = data.permissions || (data.name === "@everyone" ? 36953089 : 0));
this.name = data.name || "new role";
this.id = data.id || null;
this.server = server;