Added overwrite shortcut

This commit is contained in:
hydrabolt
2015-11-05 20:02:34 +00:00
parent 5dfe7cbf79
commit 73e0c1683b
6 changed files with 252 additions and 17 deletions

View File

@@ -1,5 +1,7 @@
"use strict";
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
@@ -439,6 +441,28 @@ var Client = (function (_EventEmitter) {
});
};
_createClass(Client, [{
key: "users",
get: function get() {
return this.internal.users;
}
}, {
key: "channels",
get: function get() {
return this.internal.channels;
}
}, {
key: "servers",
get: function get() {
return this.internal.servers;
}
}, {
key: "privateChannels",
get: function get() {
return this.internal.private_channels;
}
}]);
return Client;
})(EventEmitter);

View File

@@ -670,6 +670,86 @@ var InternalClient = (function () {
});
};
//def overwritePermissions
InternalClient.prototype.overwritePermissions = function overwritePermissions(channel, role, updated) {
var self = this;
return new Promise(function (resolve, reject) {
channel = self.resolver.resolveChannel(channel)["catch"](reject).then(next);
function next(channel) {
var user = self.resolver.resolverUser(role);
var data = {};
data.allow = 0;
data.deny = 0;
updated.allow = updated.allow || [];
updated.deny = updated.deny || [];
if (role instanceof Role) {
data.id = role.id;
data.type = "role";
} else if (user) {
data.id = user.id;
data.type = "member";
} else {
reject(new Error("role incorrect"));
return;
}
for (var _iterator3 = updated.allow, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref3 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref3 = _i3.value;
}
var perm = _ref3;
if (perm instanceof String || typeof perm === "string") {
data.allow |= Constants.Permissions[perm] || 0;
} else {
data.allow |= perm;
}
}
for (var _iterator4 = updated.deny, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref4;
if (_isArray4) {
if (_i4 >= _iterator4.length) break;
_ref4 = _iterator4[_i4++];
} else {
_i4 = _iterator4.next();
if (_i4.done) break;
_ref4 = _i4.value;
}
var perm = _ref4;
if (perm instanceof String || typeof perm === "string") {
data.deny |= Constants.Permissions[perm] || 0;
} else {
data.deny |= perm;
}
}
request.put(Endpoints.CHANNEL_PERMISSIONS(channel) + "/" + data.id).set("authorization", self.token).send(data).end(function (err) {
if (err) {
reject(err);
} else {
resolve();
}
});
}
});
};
InternalClient.prototype.sendWS = function sendWS(object) {
if (this.websocket) this.websocket.send(JSON.stringify(object));
};
@@ -807,19 +887,19 @@ var InternalClient = (function () {
var server = self.servers.get("id", data.id);
if (server) {
for (var _iterator3 = server.channels, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
for (var _iterator5 = server.channels, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref5;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref3 = _iterator3[_i3++];
if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref5 = _iterator5[_i5++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref3 = _i3.value;
_i5 = _iterator5.next();
if (_i5.done) break;
_ref5 = _i5.value;
}
var channel = _ref3;
var channel = _ref5;
self.channels.remove(channel);
}