1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-09-21 02:01:33 +02:00

Gateway permission check fix

This commit is contained in:
AlTech98 2021-09-16 21:30:05 +02:00
parent b446a3110b
commit 75c43b7db3
3 changed files with 10 additions and 3 deletions

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?.();
}

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);

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;