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

@@ -83,11 +83,15 @@ var Member = (function (_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;
console.log(affectingOverwrites);
console.log("\n\n\n");
console.log(affectingMemberOverwrites);
for (var _iterator3 = affectingOverwrites, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
@@ -103,9 +107,10 @@ var Member = (function (_User) {
var overwrite = _ref3;
finalPacked = finalPacked & ~overwrite.deny;
finalPacked = finalPacked | overwrite.allow;
}
for (var _iterator4 = affectingOverwrites, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
for (var _iterator4 = affectingMemberOverwrites, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref4;
if (_isArray4) {
@@ -119,40 +124,7 @@ var Member = (function (_User) {
var overwrite = _ref4;
finalPacked = finalPacked | overwrite.allow;
}
for (var _iterator5 = affectingMemberOverwrites, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref5;
if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref5 = _iterator5[_i5++];
} else {
_i5 = _iterator5.next();
if (_i5.done) break;
_ref5 = _i5.value;
}
var overwrite = _ref5;
finalPacked = finalPacked & ~overwrite.deny;
}
for (var _iterator6 = affectingMemberOverwrites, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
var _ref6;
if (_isArray6) {
if (_i6 >= _iterator6.length) break;
_ref6 = _iterator6[_i6++];
} else {
_i6 = _iterator6.next();
if (_i6.done) break;
_ref6 = _i6.value;
}
var overwrite = _ref6;
finalPacked = finalPacked | overwrite.allow;
}
@@ -170,19 +142,19 @@ var Member = (function (_User) {
var ufRoles = [this.server.getRole("id", this.server.id)];
for (var _iterator7 = this.rawRoles, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
var _ref7;
for (var _iterator5 = this.rawRoles, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref5;
if (_isArray7) {
if (_i7 >= _iterator7.length) break;
_ref7 = _iterator7[_i7++];
if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref5 = _iterator5[_i5++];
} else {
_i7 = _iterator7.next();
if (_i7.done) break;
_ref7 = _i7.value;
_i5 = _iterator5.next();
if (_i5.done) break;
_ref5 = _i5.value;
}
var rawRole = _ref7;
var rawRole = _ref5;
ufRoles.push(this.server.getRole("id", rawRole));
}
@@ -197,26 +169,25 @@ var Member = (function (_User) {
basePerm = basePerms[0].packed;
basePerms = basePerms || [];
for (var _iterator8 = basePerms, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
var _ref8;
for (var _iterator6 = basePerms, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
var _ref6;
if (_isArray8) {
if (_i8 >= _iterator8.length) break;
_ref8 = _iterator8[_i8++];
if (_isArray6) {
if (_i6 >= _iterator6.length) break;
_ref6 = _iterator6[_i6++];
} else {
_i8 = _iterator8.next();
if (_i8.done) break;
_ref8 = _i8.value;
_i6 = _iterator6.next();
if (_i6.done) break;
_ref6 = _i6.value;
}
var perm = _ref8;
var perm = _ref6;
basePerm = basePerm | perm.packed;
console.log(perm.name + " - " + perm.mentionEveryone);
}
return new ServerPermissions({
permissions: basePerm
});
return new EvaluatedPermissions(basePerm);
}
}]);

View File

@@ -18,7 +18,7 @@ var ServerPermissions = (function () {
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;

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;

View File

@@ -26,7 +26,11 @@ mybot.on("message", function (message) {
user = message.sender;
}
mybot.reply(message, JSON.stringify(message.sender.permissionsIn(message.channel), null, 4));
mybot.getChannelLogs(message.channel, 5000).then((messages)=>{
for(var msg of messages){
mybot.deleteMessage(msg);
}
})
});
mybot.once("ready", function () {