Gateway permission check fix

This commit is contained in:
AlTech98
2021-09-16 21:30:05 +02:00
parent e575c42644
commit 92cbfa7595
3 changed files with 10 additions and 3 deletions
+8 -3
View File
@@ -116,7 +116,7 @@ async function consume(this: WebSocket, opts: EventOpts) {
.has("VIEW_CHANNEL")
)
return;
// TODO: check if user has permission to channel
break;
case "GUILD_CREATE":
this.events[id] = await listenEvent(id, consumer, listenOpts);
break;
@@ -193,11 +193,16 @@ async function consume(this: WebSocket, opts: EventOpts) {
break;
}
Send(this, {
let aa = {
op: OPCODES.Dispatch,
t: event,
d: data,
s: this.sequence++,
});
}
//TODO remove before PR merge
console.log(aa)
Send(this, aa);
opts.acknowledge?.();
}
+1
View File
@@ -5,6 +5,7 @@ import { EVENT, Event } from "../interfaces";
const events = new EventEmitter();
export async function emitEvent(payload: Omit<Event, "created_at">) {
console.log(payload) //TODO remove before merge
const id = (payload.channel_id || payload.user_id || payload.guild_id) as string;
if (!id) return console.error("event doesn't contain any id", payload);
+1
View File
@@ -92,6 +92,7 @@ export class Permissions extends BitField {
}
overwriteChannel(overwrites: ChannelPermissionOverwrite[]) {
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)) return true;