diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
index 6a9cfc55..7049857e 100644
--- a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
@@ -17,7 +17,7 @@
*/
import { route } from "@spacebar/api";
-import { DiscordApiErrors, emitEvent, Emoji, getPermission, getRights, Guild, GuildMemberUpdateEvent, handleFile, Member, Role, Sticker } from "@spacebar/util";
+import { Config, DiscordApiErrors, emitEvent, Emoji, getPermission, getRights, Guild, GuildMemberUpdateEvent, handleFile, Member, Role, Sticker } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { MemberChangeSchema, PublicMemberProjection, PublicUserProjection } from "@spacebar/schemas";
@@ -173,7 +173,7 @@ router.put(
if (member_id === "@me") {
member_id = req.user_id;
rights.hasThrow("JOIN_GUILDS");
- if (req.user_bot) throw DiscordApiErrors.BOT_PROHIBITED_ENDPOINT;
+ if (req.user_bot && !Config.get().user.botsCanUseInvites) throw DiscordApiErrors.BOT_PROHIBITED_ENDPOINT;
} else {
// TODO: check oauth2 scope
diff --git a/src/api/routes/invites/index.ts b/src/api/routes/invites/index.ts
index 7e43aa56..630fe03c 100644
--- a/src/api/routes/invites/index.ts
+++ b/src/api/routes/invites/index.ts
@@ -17,7 +17,7 @@
*/
import { route } from "@spacebar/api";
-import { Ban, DiscordApiErrors, emitEvent, getPermission, Guild, Invite, InviteDeleteEvent, PublicInviteRelation, User } from "@spacebar/util";
+import { Ban, Config, DiscordApiErrors, emitEvent, getPermission, Guild, Invite, InviteDeleteEvent, PublicInviteRelation, User } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
import { UserFlags } from "@spacebar/schemas";
@@ -68,7 +68,7 @@ router.post(
},
}),
async (req: Request, res: Response) => {
- if (req.user_bot) throw DiscordApiErrors.BOT_PROHIBITED_ENDPOINT;
+ if (req.user_bot && !Config.get().user.botsCanUseInvites) throw DiscordApiErrors.BOT_PROHIBITED_ENDPOINT;
const { invite_code } = req.params;
const { public_flags } = req.user;
diff --git a/src/util/config/types/UsersConfiguration.ts b/src/util/config/types/UsersConfiguration.ts
index 2ac058e9..d51a3b85 100755
--- a/src/util/config/types/UsersConfiguration.ts
+++ b/src/util/config/types/UsersConfiguration.ts
@@ -19,4 +19,5 @@
export class UserConfiguration {
blockedContains: string[] = ["discord", "clyde", "spacebar", "steam", "community", "support", "ticket"];
blockedEquals: string[] = ["everyone", "here"];
+ botsCanUseInvites = false;
}
|