From 18e7e7ceb21bd88c874948c0163936bdd8de89ca Mon Sep 17 00:00:00 2001 From: Kata Date: Sat, 8 Feb 2020 00:54:52 -0500 Subject: [PATCH] fix(Servers API): sanitize for edge cases with roles that don't exist anymore --- Server/api/servers.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Server/api/servers.js b/Server/api/servers.js index c937d09..9bdd2ff 100644 --- a/Server/api/servers.js +++ b/Server/api/servers.js @@ -122,12 +122,13 @@ module.exports = (R, $) => { } const currentRoles = gm.rolesList + const allRoles = await $.discord.getRoles(server) const allowedRoles = await $.server.getAllowedRoles(server) - + // current roles and allowed roles are an inclusive set. // first, filter added and removed. - const sanitizedAdded = added.filter(role => allowedRoles.includes(role)) - const sanitizedRemoved = removed.filter(role => allowedRoles.includes(role)) + const sanitizedAdded = added.filter(role => allRoles.includes(role) && allowedRoles.includes(role)) + const sanitizedRemoved = removed.filter(role => allRoles.includes(role) && allowedRoles.includes(role)) // filter currentRoles by what's been removed (down is faster than up) let newRoles = currentRoles.filter(role => !sanitizedRemoved.includes(role))