mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 18:43:31 +01:00
Don't overwrite permissions in updateRole if they aren't passed
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user