Testing alternate role resolving

This commit is contained in:
abalabahaha
2016-05-12 17:30:44 -07:00
parent 873f78b02a
commit e7882a38ee
4 changed files with 28 additions and 38 deletions

View File

@@ -1180,9 +1180,7 @@ var InternalClient = (function () {
return Promise.reject(new Error("Role does not exist on same server as member"));
}
var roleIDs = roles[0].server.memberMap[member.id].roles.map(function (r) {
return r.id;
});
var roleIDs = roles[0].server.memberMap[member.id].roles;
for (var i = 0; i < roles.length; i++) {
if (! ~roleIDs.indexOf(roles[i].id)) {
@@ -1254,9 +1252,7 @@ var InternalClient = (function () {
});
}
var roleIDs = roles[0].server.memberMap[member.id].roles.map(function (r) {
return r.id;
});
var roleIDs = roles[0].server.memberMap[member.id].roles;
for (var _iterator7 = roles, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
var _ref7;
@@ -2071,9 +2067,7 @@ var InternalClient = (function () {
if (server) {
server.memberMap[data.user.id] = {
roles: data.roles.map(function (pid) {
return server.roles.get("id", pid);
}),
roles: data.roles,
mute: false,
selfMute: false,
deaf: false,
@@ -2123,9 +2117,7 @@ var InternalClient = (function () {
} else {
server.memberMap[data.user.id] = {};
}
server.memberMap[data.user.id].roles = data.roles ? data.roles.map(function (pid) {
return server.roles.get("id", pid);
}) : server.memberMap[data.user.id].roles;
server.memberMap[data.user.id].roles = data.roles ? data.roles : server.memberMap[data.user.id].roles;
server.memberMap[data.user.id].mute = data.mute || server.memberMap[data.user.id].mute;
server.memberMap[data.user.id].selfMute = data.self_mute === undefined ? server.memberMap[data.user.id].selfMute : data.self_mute;
server.memberMap[data.user.id].deaf = data.deaf || server.memberMap[data.user.id].deaf;
@@ -2291,9 +2283,7 @@ var InternalClient = (function () {
var user = _ref11;
server.memberMap[user.user.id] = {
roles: user.roles.map(function (pid) {
return server.roles.get("id", pid);
}),
roles: user.roles,
mute: user.mute,
selfMute: false,
deaf: user.deaf,

View File

@@ -91,9 +91,7 @@ var Server = (function (_Equality) {
} else {
data.members.forEach(function (dataUser) {
_this.memberMap[dataUser.user.id] = {
roles: dataUser.roles.map(function (pid) {
return self.roles.get("id", pid);
}),
roles: dataUser.roles,
mute: dataUser.mute,
selfMute: dataUser.self_mute,
deaf: dataUser.deaf,
@@ -174,9 +172,17 @@ var Server = (function (_Equality) {
}
Server.prototype.detailsOf = function detailsOf(user) {
var _this2 = this;
user = this.client.internal.resolver.resolveUser(user);
if (user) {
return this.memberMap[user.id] || {};
var result = this.memberMap[user.id] || {};
if (result && result.roles) {
result.roles = result.roles.map(function (pid) {
return _this2.roles.get("id", pid);
});
}
return result;
} else {
return {};
}
@@ -195,12 +201,7 @@ var Server = (function (_Equality) {
};
Server.prototype.rolesOfUser = function rolesOfUser(user) {
user = this.client.internal.resolver.resolveUser(user);
if (user) {
return this.memberMap[user.id] ? this.memberMap[user.id].roles : [];
} else {
return [];
}
return this.detailsOf(user).roles || [];
};
Server.prototype.rolesOfMember = function rolesOfMember(member) {

View File

@@ -978,7 +978,7 @@ export default class InternalClient {
return Promise.reject(new Error("Role does not exist on same server as member"));
}
var roleIDs = roles[0].server.memberMap[member.id].roles.map(r => r.id);
var roleIDs = roles[0].server.memberMap[member.id].roles;
for (var i = 0; i < roles.length; i++) {
if (!~roleIDs.indexOf(roles[i].id)) {
@@ -1037,7 +1037,7 @@ export default class InternalClient {
roles = roles.map(r => this.resolver.resolveRole(r));
}
var roleIDs = roles[0].server.memberMap[member.id].roles.map(r => r.id);
var roleIDs = roles[0].server.memberMap[member.id].roles;
for (var role of roles) {
if (!role.server.memberMap[member.id]) {
@@ -1764,7 +1764,7 @@ export default class InternalClient {
if (server) {
server.memberMap[data.user.id] = {
roles: data.roles.map(pid => server.roles.get("id", pid)),
roles: data.roles,
mute: false,
selfMute: false,
deaf: false,
@@ -1819,7 +1819,7 @@ export default class InternalClient {
} else {
server.memberMap[data.user.id] = {};
}
server.memberMap[data.user.id].roles = data.roles ? data.roles.map(pid => server.roles.get("id", pid)) : server.memberMap[data.user.id].roles;
server.memberMap[data.user.id].roles = data.roles ? data.roles : server.memberMap[data.user.id].roles;
server.memberMap[data.user.id].mute = data.mute || server.memberMap[data.user.id].mute;
server.memberMap[data.user.id].selfMute = data.self_mute === undefined ? server.memberMap[data.user.id].selfMute : data.self_mute;
server.memberMap[data.user.id].deaf = data.deaf || server.memberMap[data.user.id].deaf;
@@ -1975,7 +1975,7 @@ export default class InternalClient {
for (var user of data.members) {
server.memberMap[user.user.id] = {
roles: user.roles.map(pid => server.roles.get("id", pid)),
roles: user.roles,
mute: user.mute,
selfMute: false,
deaf: user.deaf,

View File

@@ -56,7 +56,7 @@ export default class Server extends Equality {
} else {
data.members.forEach((dataUser) => {
this.memberMap[dataUser.user.id] = {
roles: dataUser.roles.map((pid) => self.roles.get("id", pid)),
roles: dataUser.roles,
mute: dataUser.mute,
selfMute: dataUser.self_mute,
deaf: dataUser.deaf,
@@ -111,7 +111,11 @@ export default class Server extends Equality {
detailsOf(user) {
user = this.client.internal.resolver.resolveUser(user);
if (user) {
return this.memberMap[user.id] || {};
var result = this.memberMap[user.id] || {};
if(result && result.roles) {
result.roles = result.roles.map(pid => this.roles.get("id", pid));
}
return result;
} else {
return {};
}
@@ -130,12 +134,7 @@ export default class Server extends Equality {
}
rolesOfUser(user) {
user = this.client.internal.resolver.resolveUser(user);
if (user) {
return (this.memberMap[user.id] ? this.memberMap[user.id].roles : []);
} else {
return [];
}
return this.detailsOf(user).roles || [];
}
rolesOfMember(member) {