summary refs log tree commit diff
path: root/src/util
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-03-04 21:59:49 +0100
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-03-04 21:59:49 +0100
commit514afaca697ae5f9a02e91342c0434fe9eeffe74 (patch)
treed0b4ac2751d0903c097aa0374820dd17222ca9d2 /src/util
parent:sparkles: AuditLog (diff)
downloadserver-514afaca697ae5f9a02e91342c0434fe9eeffe74.tar.xz
:sparkles: AuditLog
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");