mirror of
https://github.com/roleypoly/roleypoly-v1.git
synced 2025-04-24 19:59:12 +00:00
fix(DiscordService): getPermissions heeds owner powers
This commit is contained in:
parent
12d94b1576
commit
0e70e2590b
3 changed files with 5 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue