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

@@ -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) {