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
}
const guild = await $.discord.getServer(id)
const guildRoles = await $.discord.getRoles(id)
// check perms
if (!$.discord.getPermissions(gm, guildRoles).canManageRoles) {
if (!$.discord.getPermissions(gm, guildRoles, guild).canManageRoles) {
ctx.status = 403
ctx.body = { err: 'cannot_manage_roles' }
return

View file

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

View file

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