diff --git a/src/api/routes/channels/#channel_id/permissions.ts b/src/api/routes/channels/#channel_id/permissions.ts index 40f6b866..372a584e 100644 --- a/src/api/routes/channels/#channel_id/permissions.ts +++ b/src/api/routes/channels/#channel_id/permissions.ts @@ -16,15 +16,7 @@ along with this program. If not, see . */ -import { - Channel, - ChannelPermissionOverwrite, - ChannelPermissionOverwriteSchema, - ChannelUpdateEvent, - emitEvent, - Member, - Role, -} from "@spacebar/util"; +import { Channel, ChannelPermissionOverwrite, ChannelPermissionOverwriteSchema, ChannelPermissionOverwriteType, ChannelUpdateEvent, emitEvent, Member, Role } from "@spacebar/util"; import { Request, Response, Router } from "express"; import { HTTPError } from "lambert-server"; @@ -59,10 +51,10 @@ router.put( channel.guild, ); - if (body.type === 0) { + if (body.type === ChannelPermissionOverwriteType.role) { if (!(await Role.count({ where: { id: overwrite_id } }))) throw new HTTPError("role not found", 404); - } else if (body.type === 1) { + } else if (body.type === ChannelPermissionOverwriteType.member) { if (!(await Member.count({ where: { id: overwrite_id } }))) throw new HTTPError("user not found", 404); } else throw new HTTPError("type not supported", 501); diff --git a/src/util/util/Permissions.ts b/src/util/util/Permissions.ts index 5aae14c2..1f26d570 100644 --- a/src/util/util/Permissions.ts +++ b/src/util/util/Permissions.ts @@ -2,24 +2,12 @@ // Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah // @fc-license-skip -import { - Channel, - ChannelPermissionOverwrite, - Guild, - Member, - Role, -} from "../entities"; -import { BitField } from "./BitField"; +import { Channel, ChannelPermissionOverwrite, ChannelPermissionOverwriteType, Guild, Member, Role } from "../entities"; +import { BitField, BitFieldResolvable, BitFlag } from "./BitField"; import "missing-native-js-functions"; -import { BitFieldResolvable, BitFlag } from "./BitField"; import { HTTPError } from "lambert-server"; -export type PermissionResolvable = - | bigint - | number - | Permissions - | PermissionResolvable[] - | PermissionString; +export type PermissionResolvable = bigint | number | Permissions | PermissionResolvable[] | PermissionString; type PermissionString = keyof typeof Permissions.FLAGS; @@ -117,9 +105,9 @@ export class Permissions extends BitField { if (!overwrites) return this; if (!this.cache) throw new Error("permission chache not available"); overwrites = overwrites.filter((x) => { - if (x.type === 0 && this.cache.roles?.some((r) => r.id === x.id)) + if (x.type === ChannelPermissionOverwriteType.role && this.cache.roles?.some((r) => r.id === x.id)) return true; - if (x.type === 1 && x.id == this.cache.user_id) return true; + if (x.type === ChannelPermissionOverwriteType.member && x.id == this.cache.user_id) return true; return false; }); return new Permissions( @@ -178,8 +166,8 @@ export class Permissions extends BitField { if (channel?.overwrites) { const overwrites = channel.overwrites.filter((x) => { - if (x.type === 0 && user.roles.includes(x.id)) return true; - if (x.type === 1 && x.id == user.id) return true; + if (x.type === ChannelPermissionOverwriteType.role && user.roles.includes(x.id)) return true; + if (x.type === ChannelPermissionOverwriteType.member && x.id == user.id) return true; return false; }); permission = Permissions.channelPermission(overwrites, permission);