🐛 fix addMember to respect max guild size
This commit is contained in:
parent
5f142a7402
commit
01eb91a63e
4
package-lock.json
generated
4
package-lock.json
generated
@ -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",
|
||||
|
@ -80,3 +80,5 @@ router.delete("/:userid", async (req: Request, res: Response) => {
|
||||
|
||||
return res.status(204).send();
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
@ -6,7 +6,7 @@ export default {
|
||||
init() {
|
||||
return Config.init({ api: DefaultOptions });
|
||||
},
|
||||
get() {
|
||||
get(): DefaultOptions {
|
||||
return Config.getAll().api;
|
||||
},
|
||||
set(val: any) {
|
||||
|
@ -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 = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user