summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json4
-rw-r--r--src/routes/api/v8/guilds/#id/bans.ts2
-rw-r--r--src/util/Config.ts2
-rw-r--r--src/util/Member.ts24
4 files changed, 28 insertions, 4 deletions
diff --git a/package-lock.json b/package-lock.json

index e8d36370..22484238 100644 --- a/package-lock.json +++ b/package-lock.json
@@ -1363,7 +1363,7 @@ }, "node_modules/fosscord-server-util": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#c058020a7ca033077755594e0cb0a0658d10596f", + "resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#92a6c981ce12f4484509d0388cb1fba2a52b55c4", "license": "ISC", "dependencies": { "jsonwebtoken": "^8.5.1", @@ -5077,7 +5077,7 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "fosscord-server-util": { - "version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#c058020a7ca033077755594e0cb0a0658d10596f", + "version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#92a6c981ce12f4484509d0388cb1fba2a52b55c4", "from": "fosscord-server-util@github:fosscord/fosscord-server-util", "requires": { "jsonwebtoken": "^8.5.1", diff --git a/src/routes/api/v8/guilds/#id/bans.ts b/src/routes/api/v8/guilds/#id/bans.ts
index d9494b14..e18a1137 100644 --- a/src/routes/api/v8/guilds/#id/bans.ts +++ b/src/routes/api/v8/guilds/#id/bans.ts
@@ -80,3 +80,5 @@ router.delete("/:userid", async (req: Request, res: Response) => { return res.status(204).send(); }); + +export default router; diff --git a/src/util/Config.ts b/src/util/Config.ts
index 200ec1b2..cfdb0d1e 100644 --- a/src/util/Config.ts +++ b/src/util/Config.ts
@@ -6,7 +6,7 @@ export default { init() { return Config.init({ api: DefaultOptions }); }, - get() { + get(): DefaultOptions { return Config.getAll().api; }, set(val: any) { diff --git a/src/util/Member.ts b/src/util/Member.ts
index 3ef2b903..f3097828 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts
@@ -9,11 +9,33 @@ import { UserModel, } from "fosscord-server-util"; import { HTTPError } from "lambert-server"; +import Config from "./Config"; import { emitEvent } from "./Event"; import { getPublicUser } from "./User"; +export const PublicMemberProjection = { + id: true, + guild_id: true, + nick: true, + roles: true, + joined_at: true, + pending: true, + deaf: true, + mute: true, + premium_since: true, +}; + export async function addMember(user_id: bigint, guild_id: bigint, cache?: { guild?: Guild }) { - const user = await getPublicUser(user_id); + const user = await getPublicUser(user_id, { guilds: true }); + + const guildSize = user.guilds.length; + // @ts-ignore + user.guilds = undefined; + + const { maxGuilds } = Config.get().limits.user; + if (guildSize >= maxGuilds) { + throw new HTTPError(` You are at the ${maxGuilds} server limit.`, 403); + } const guild = cache?.guild || (await GuildModel.findOne({ id: guild_id }).exec()); const member = {