From 31324b82c55e7bac7199b7ca869631633211b543 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 14 May 2021 22:34:48 +0200 Subject: [PATCH 1/2] :sparkles: add MessageType enum --- package-lock.json | Bin 15729 -> 33324 bytes src/util/Constants.ts | 25 +++++++++++++++++++++++++ src/util/Permissions.ts | 9 ++++++--- src/util/String.ts | 4 ++-- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26fd812bf7745e4204b872dd0e4a57d08b9155d7..0975f0327476dbd93f2bcecf19e3f6613e14ca40 100644 GIT binary patch delta 3123 zcmbVOS!^3s6qU2owHqgK<0YHzFfnx!$77F|tW79N15}703IsmDWo*9~C!QHI<20lw zZIBQY3AGLPrxJW1eh`ZUm4QlhQKEt<;;X0#35gO40wRPcTh*va#hbAk&znY$i)7j3 z`_9~R@45Hg_x?Qa-U}7SB25vh+i0NDLVRi>l}6)8lu`mu4YUOp#_aYC8=qp6NW%Z0 zGa3w3;dh~;9sV{pccfEs#7hWUsXY&m$c`{3fij3sAU>X2e-Do8nrf(MA043s3JP{s zQzj}Jpc(whTaIjLe?YcG3I^(=M6f;8y>0mxO1H}n^Qb@#Dygp@G^lCtZ<^%0*};Qg?9(s z@PXB)p_s2*Av+)?v7*S%!Vm67I9&g-25vV0rP3~E*dEb6zG;Nvn{CZ!xV%;jjki@_ ziKzXPGb|3l22VAdRS|;QGGAY;4Q}Yk83`^_*x-zXz&&prZ6I({tcVb&)c>;eb4^xn z+ZHvJl>MB>(%q=F{L#2rqvn9NW-FX)I;DB>V6)cwaLb2H>KFYS;skNlm%)=yRI)x` zVqmoOBlkZmG?q8!WLo!gK&nVucTX-8z_HsoDl#wy%-7<<7fXb?u~7@-)RmQyJ3h zV-1{67q}=rtnBCn&S}*}fYH0)FcsaVIvzmp8iUdHJ7C6NzgM2Pcu1=xC>6dMS4yhw zWUv`F`!sG(3#{FF_P)&vvWZB3?wM&M&MN)ByyH`K4c_q_d$d&i<#{GWO`zCxQX%6y z4B#<#z#AP77}Q(gVn=kZN>}wfV_z9IV!e)e7)+PqAq`uJ|26|Q%$ zYW)7=yRNR*zw{+|&0^>xnngrxf{mq-Ps-v)?)LI?ZjhgdlIYotFP;{7d>%I8Y3_$n z=1om#zc4q{q5T%zL(V1j zZ(5L^5(V)~h}(~+s=Nuidlv7_JBy{{`>XIonY&S F{sSR$;x7OI delta 45 zcmZ3}!t}9ff~lmTk`5QAQciwyc3NgmYFKJfab|v=l9httL_hJ#i_?TR8@v9r0RU+w B5D@?X diff --git a/src/util/Constants.ts b/src/util/Constants.ts index 808d234b..bda53174 100644 --- a/src/util/Constants.ts +++ b/src/util/Constants.ts @@ -1,3 +1,28 @@ import { VerifyOptions } from "jsonwebtoken"; export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] }; + +export enum MessageType { + DEFAULT, + RECIPIENT_ADD, + RECIPIENT_REMOVE, + CALL, + CHANNEL_NAME_CHANGE, + CHANNEL_ICON_CHANGE, + CHANNEL_PINNED_MESSAGE, + GUILD_MEMBER_JOIN, + USER_PREMIUM_GUILD_SUBSCRIPTION, + USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1, + USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2, + USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3, + CHANNEL_FOLLOW_ADD, + GUILD_DISCOVERY_DISQUALIFIED, + GUILD_DISCOVERY_REQUALIFIED, + GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING, + GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING, + THREAD_CREATED, + REPLY, + APPLICATION_COMMAND, + THREAD_STARTER_MESSAGE, + GUILD_INVITE_REMINDER, +} diff --git a/src/util/Permissions.ts b/src/util/Permissions.ts index 8debfa08..fb8ed2b0 100644 --- a/src/util/Permissions.ts +++ b/src/util/Permissions.ts @@ -6,6 +6,7 @@ import { ChannelPermissionOverwrite } from "../models/Channel"; import { Role, RoleModel } from "../models/Role"; import { BitField } from "./BitField"; import { GuildDocument, GuildModel } from "../models/Guild"; +// TODO: check role hierarchy permission var HTTPError: any; @@ -186,7 +187,7 @@ export class Permissions extends BitField { } export async function getPermission( - user_id: string, + user_id?: string, guild_id?: string, channel_id?: string, cache?: { channel?: ChannelDocument | null; member?: MemberDocument | null; guild?: GuildDocument | null } @@ -194,6 +195,8 @@ export async function getPermission( var { channel, member, guild } = cache || {}; var roles; + if (!user_id) throw new HTTPError("User not found"); + if (channel_id && !channel) { channel = await ChannelModel.findOne( { id: channel_id }, @@ -205,11 +208,11 @@ export async function getPermission( if (guild_id) { if (!guild) guild = await GuildModel.findOne({ id: guild_id }, { owner_id: true }).exec(); - if (!guild) throw new Error("Guild not found"); + if (!guild) throw new HTTPError("Guild not found"); if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR); if (!member) member = await MemberModel.findOne({ guild_id, id: user_id }, "roles").exec(); - if (!member) throw new Error("Member not found"); + if (!member) throw new HTTPError("Member not found"); roles = await RoleModel.find({ guild_id, id: { $in: member.roles } }) .lean() diff --git a/src/util/String.ts b/src/util/String.ts index bac7905f..55f11e8d 100644 --- a/src/util/String.ts +++ b/src/util/String.ts @@ -1,7 +1,7 @@ -import { DOUBLE_WHITE_SPACE, SPECIAL_CHAR } from "./Regex"; +import { SPECIAL_CHAR } from "./Regex"; export function trimSpecial(str?: string): string { // @ts-ignore if (!str) return; - return str.replace(SPECIAL_CHAR, "").replace(DOUBLE_WHITE_SPACE, " ").trim(); + return str.replace(SPECIAL_CHAR, "").trim(); } From 0f732f9f10ea2bf06f12c24e1ac067aa4fc3bea2 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 14 May 2021 22:34:52 +0200 Subject: [PATCH 2/2] 1.1.6 --- package-lock.json | Bin 33324 -> 33324 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 0975f0327476dbd93f2bcecf19e3f6613e14ca40..6cc9dee61f71c9024042b2fc5c45c3cdfa640701 100644 GIT binary patch delta 19 acmZ3}!nCG^X@V)E*+jEyMzf8Zsu}@CRR=f# delta 23 dcmZ3}!nCG^X@cqG1OBWNt;&HE$Htw-jR19r3L5|b diff --git a/package.json b/package.json index 85d86ce7..cf77c931 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fosscord/server-util", - "version": "1.1.5", + "version": "1.1.6", "description": "Utility functions for the all server repositories", "main": "dist/index.js", "types": "dist/index.d.ts",