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) { InternalClient.prototype.updateRole = function updateRole(role, data) {
var self = this; var self = this;
data = data || {}; data = data || {};
data.permissions = data.permissions || [];
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var server = self.resolver.resolveServer(role.server); var server = self.resolver.resolveServer(role.server);
var permissions = 0; var newData = {
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({
color: data.color || role.color, color: data.color || role.color,
hoist: data.hoist || role.hoist, hoist: data.hoist || role.hoist,
name: data.name || role.name, name: data.name || role.name,
permissions: permissions permissions: role.permissions || 0
}).end(function (err, res) { };
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) { if (err) {
reject(err); reject(err);
} else { } else {

View File

@@ -723,31 +723,32 @@ class InternalClient {
updateRole(role, data) { updateRole(role, data) {
var self = this; var self = this;
data = data || {}; data = data || {};
data.permissions = data.permissions || [];
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
var server = self.resolver.resolveServer(role.server); var server = self.resolver.resolveServer(role.server);
var permissions = 0; var newData = {
for (var perm of data.permissions) { color: data.color || role.color,
if (perm instanceof String || typeof perm === "string") { hoist: data.hoist || role.hoist,
permissions |= (Constants.Permissions[perm] || 0); name: data.name || role.name,
} else { permissions: role.permissions || 0
permissions |= perm; };
if(data.permissions) {
newData.permissions = 0;
for (var perm of data.permissions) {
if (perm instanceof String || typeof perm === "string") {
newData.permissions |= (Constants.Permissions[perm] || 0);
} else {
newData.permissions |= perm;
}
} }
} }
data.color = data.color || 0;
request request
.patch(Endpoints.SERVER_ROLES(server.id) + "/" + role.id) .patch(Endpoints.SERVER_ROLES(server.id) + "/" + role.id)
.set("authorization", self.token) .set("authorization", self.token)
.send({ .send(newData)
color: data.color || role.color,
hoist: data.hoist || role.hoist,
name: data.name || role.name,
permissions: permissions
})
.end((err, res) => { .end((err, res) => {
if (err) { if (err) {
reject(err); reject(err);