Don't overwrite permissions in updateRole if they aren't passed

This commit is contained in:
abalabahaha
2015-11-22 20:25:52 -08:00
parent 014d78638e
commit 8cb912090f
2 changed files with 45 additions and 43 deletions

View File

@@ -675,41 +675,42 @@ var InternalClient = (function () {
InternalClient.prototype.updateRole = function updateRole(role, data) {
var self = this;
data = data || {};
data.permissions = data.permissions || [];
return new Promise(function (resolve, reject) {
var server = self.resolver.resolveServer(role.server);
var permissions = 0;
for (var _iterator2 = data.permissions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var perm = _ref2;
if (perm instanceof String || typeof perm === "string") {
permissions |= Constants.Permissions[perm] || 0;
} else {
permissions |= perm;
}
}
data.color = data.color || 0;
request.patch(Endpoints.SERVER_ROLES(server.id) + "/" + role.id).set("authorization", self.token).send({
var newData = {
color: data.color || role.color,
hoist: data.hoist || role.hoist,
name: data.name || role.name,
permissions: permissions
}).end(function (err, res) {
permissions: role.permissions || 0
};
if (data.permissions) {
newData.permissions = 0;
for (var _iterator2 = data.permissions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var perm = _ref2;
if (perm instanceof String || typeof perm === "string") {
newData.permissions |= Constants.Permissions[perm] || 0;
} else {
newData.permissions |= perm;
}
}
}
request.patch(Endpoints.SERVER_ROLES(server.id) + "/" + role.id).set("authorization", self.token).send(newData).end(function (err, res) {
if (err) {
reject(err);
} else {