fix(DiscordService): getPermissions heeds owner powers

This commit is contained in:
41666 2020-02-02 16:10:53 -05:00
parent 12d94b1576
commit 0e70e2590b
3 changed files with 5 additions and 4 deletions

View file

@ -71,10 +71,11 @@ module.exports = (R, $) => {
return return
} }
const guild = await $.discord.getServer(id)
const guildRoles = await $.discord.getRoles(id) const guildRoles = await $.discord.getRoles(id)
// check perms // check perms
if (!$.discord.getPermissions(gm, guildRoles).canManageRoles) { if (!$.discord.getPermissions(gm, guildRoles, guild).canManageRoles) {
ctx.status = 403 ctx.status = 403
ctx.body = { err: 'cannot_manage_roles' } ctx.body = { err: 'cannot_manage_roles' }
return return

View file

@ -116,7 +116,7 @@ class DiscordService extends Service {
}) })
} }
getPermissions(gm, guildRoles) { getPermissions(gm, guildRoles, guild) {
if (this.isRoot(gm.user.id)) { if (this.isRoot(gm.user.id)) {
return { return {
isAdmin: true, isAdmin: true,
@ -130,7 +130,7 @@ class DiscordService extends Service {
.filter(x => !!x) .filter(x => !!x)
.find(role => (role.permissions & permissionInt) === permissionInt) .find(role => (role.permissions & permissionInt) === permissionInt)
const isAdmin = matchFor(0x00000008) const isAdmin = guild.ownerid === gm.user.id || matchFor(0x00000008)
const canManageRoles = isAdmin || matchFor(0x10000000) const canManageRoles = isAdmin || matchFor(0x10000000)
return { return {

View file

@ -58,7 +58,7 @@ class PresentationService extends Service {
roles: serverRoles, roles: serverRoles,
message: serverData.message, message: serverData.message,
categories: serverData.categories, categories: serverData.categories,
perms: this.discord.getPermissions(member, serverRoles), perms: this.discord.getPermissions(member, serverRoles, server),
} }
}) })
} }