diff options
author | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-04-23 00:10:10 +0200 |
---|---|---|
committer | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-04-23 00:10:10 +0200 |
commit | 6f5fba5c381aaca94f6e6518a9d1a9f1d7923032 (patch) | |
tree | ee89907d4c0941f7bfbabda3a6d0fa5b47715790 /src/util | |
parent | :art: rename to -> @fosscord/server-util (diff) | |
download | server-6f5fba5c381aaca94f6e6518a9d1a9f1d7923032.tar.xz |
:sparkles: throw missing permission
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/Permissions.ts | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/util/Permissions.ts b/src/util/Permissions.ts index c7a41594..2f43f7e1 100644 --- a/src/util/Permissions.ts +++ b/src/util/Permissions.ts @@ -7,6 +7,14 @@ import { Role, RoleModel } from "../models/Role"; import { BitField } from "./BitField"; import { GuildDocument, GuildModel } from "../models/Guild"; +var HTTPError: typeof Error; + +try { + HTTPError = require("lambert-server").HTTPError; +} catch (e) { + HTTPError = Error; +} + export type PermissionResolvable = bigint | number | Permissions | PermissionResolvable[] | PermissionString; type PermissionString = @@ -101,10 +109,9 @@ export class Permissions extends BitField { * Checks whether the bitfield has a permission, or multiple permissions, but throws an Error if user fails to match auth criteria. */ hasThrow(permission: PermissionResolvable, checkAdmin = true) { - if ((checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.has(permission)) { - return true; - } - throw new Error(`User doesn't fulfill the following permission criteria: ${permission}`); + if (this.has(permission)) return true; + // @ts-ignore + throw new HTTPError(`You are missing the following permissions ${permission}`, 403); } static channelPermission(overwrites: ChannelPermissionOverwrite[], init?: bigint) { |