summary refs log tree commit diff
path: root/src/routes/guilds/#guild_id/welcome_screen.ts
diff options
context:
space:
mode:
authorIntevel ツ <59223342+Intevel@users.noreply.github.com>2021-05-08 15:08:41 +0200
committerIntevel ツ <59223342+Intevel@users.noreply.github.com>2021-05-08 15:08:41 +0200
commite3ce017aedb874dbd04212c22813e5cc56e11507 (patch)
treec882575355905b2360638a578d72ae36baec1f30 /src/routes/guilds/#guild_id/welcome_screen.ts
parentUpdate roles.ts (diff)
downloadserver-e3ce017aedb874dbd04212c22813e5cc56e11507.tar.xz
Update welcome_screen.ts
Diffstat (limited to 'src/routes/guilds/#guild_id/welcome_screen.ts')
-rw-r--r--src/routes/guilds/#guild_id/welcome_screen.ts12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/routes/guilds/#guild_id/welcome_screen.ts b/src/routes/guilds/#guild_id/welcome_screen.ts
index 213aad80..ff25b37c 100644
--- a/src/routes/guilds/#guild_id/welcome_screen.ts
+++ b/src/routes/guilds/#guild_id/welcome_screen.ts
@@ -3,22 +3,25 @@ import { GuildModel, getPermission, toObject, Snowflake } from "@fosscord/server
 import { HTTPError } from "lambert-server";
 import { emitEvent } from "../../../util/Event";
 import { check } from "../../../util/instanceOf";
+import { isMember } from "../../../util/Member";
 import { GuildAddChannelToWelcomeScreenSchema } from "../../../schema/Guild";
 import { getPublicUser } from "../../../util/User";
 
 const router: Router = Router();
 
 router.get("/", async (req: Request, res: Response) => {
-	const guild_id = req.params.id;
+	const guild_id = req.params.guild_id;
 
 	const guild = await GuildModel.findOne({ id: guild_id });
 	if (!guild) throw new HTTPError("Guild not found", 404);
 
+	if(!isMember(req.user_id, guild_id)) throw new HTTPError("You are not member of this guild", 403);
+
 	res.json(toObject(guild.welcome_screen));
 });
 
 router.post("/", check(GuildAddChannelToWelcomeScreenSchema), async (req: Request, res: Response) => {
-	const guild_id = req.params.id;
+	const guild_id = req.params.guild_id;
 	const body = req.body as GuildAddChannelToWelcomeScreenSchema;
 
 	const guild = await GuildModel.findOne({ id: guild_id }).exec();
@@ -28,6 +31,11 @@ router.post("/", check(GuildAddChannelToWelcomeScreenSchema), async (req: Reques
 		...body
 	}
 
+	if(!isMember(req.user_id, guild_id)) throw new HTTPError("You are not member of this guild", 403);
+	const perms = await getPermission(req.user_id, guild_id);
+	perms.hasThrow("MANAGE_GUILD");
+
+	if(!guild.welcome_screen.enabled) throw new HTTPError("Welcome screen disabled", 400);
 	if(guild.welcome_screen.welcome_channels.some(channel => channel.channel_id === body.channel_id)) throw new Error("Welcome Channel exists")