summary refs log tree commit diff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/BitField.ts2
-rw-r--r--src/util/MongoBigInt.ts2
-rw-r--r--src/util/Permissions.ts6
3 files changed, 7 insertions, 3 deletions
diff --git a/src/util/BitField.ts b/src/util/BitField.ts

index aba98d75..5cccd352 100644 --- a/src/util/BitField.ts +++ b/src/util/BitField.ts
@@ -137,7 +137,7 @@ export class BitField { const resolve = this.constructor?.resolve || this.resolve; return bit.map((p) => resolve(p)).reduce((prev, p) => BigInt(prev) | BigInt(p), 0n); } - if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") return this.FLAGS[bit]; + if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") return FLAGS[bit]; throw new RangeError("BITFIELD_INVALID: " + bit); } } diff --git a/src/util/MongoBigInt.ts b/src/util/MongoBigInt.ts
index 28818212..c4e5f623 100644 --- a/src/util/MongoBigInt.ts +++ b/src/util/MongoBigInt.ts
@@ -33,7 +33,7 @@ class LongSchema extends mongoose.SchemaType { cast(val: any, scope?: any, init?: any, type?: string) { if (null === val) return val; if ("" === val) return null; - if (typeof val === "bigint" && type === "query") { + if (typeof val === "bigint") { return mongoose.mongo.Long.fromString(val.toString()); } diff --git a/src/util/Permissions.ts b/src/util/Permissions.ts
index d7233536..ae21e138 100644 --- a/src/util/Permissions.ts +++ b/src/util/Permissions.ts
@@ -5,7 +5,7 @@ import { ChannelDocument, ChannelModel } from "../models/Channel"; import { ChannelPermissionOverwrite } from "../models/Channel"; import { Role, RoleModel } from "../models/Role"; import { BitField } from "./BitField"; -import { GuildDocument } from "../models/Guild"; +import { GuildDocument, GuildModel } from "../models/Guild"; export type PermissionResolvable = bigint | number | Permissions | PermissionResolvable[] | PermissionString; @@ -151,6 +151,10 @@ export async function getPermission( ) { var { channel, member } = cache || {}; + const guild = await GuildModel.findOne({ id: guild_id }, { owner_id: true }).exec(); + if (!guild) throw new Error("Guild not found"); + if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR); + member = await MemberModel.findOne({ guild_id, id: user_id }, "roles").exec(); if (!member) throw new Error("Member not found");