Merge pull request #41 from qeled/master

Fix permissions
This commit is contained in:
Amish Shah
2015-10-30 11:10:28 +00:00
2 changed files with 11 additions and 5 deletions

View File

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

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;