From cf99b95c3d76d5a546949b9303a810b406241fd5 Mon Sep 17 00:00:00 2001 From: unknownPerson115 <69736850+unknownPerson115@users.noreply.github.com> Date: Sat, 25 Dec 2021 21:04:56 +0000 Subject: Updated Server.ts Added what to do if 'SIGTERM' is sent to the server for the `/stop` API route --- bundle/src/Server.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts index e461ec5f..c5da5fc9 100644 --- a/bundle/src/Server.ts +++ b/bundle/src/Server.ts @@ -22,6 +22,14 @@ const cdn = new CDNServer({ server, port, production, app }); // @ts-ignore const gateway = new Gateway.Server({ server, port, production }); +//this is what has been added for the /stop API route +process.on('SIGTERM', () => { + server.close(() => { + console.log("Stop API has been successfully POSTed, SIGTERM sent") + }) +}) +//this is what has been added for the /stop API route + async function main() { server.listen(port); await initDatabase(); -- cgit 1.5.1 From 31c66d0f5ef19446e9e6d322fe3a1d8e830fdbcb Mon Sep 17 00:00:00 2001 From: unknownPerson115 <69736850+unknownPerson115@users.noreply.github.com> Date: Sat, 25 Dec 2021 21:09:46 +0000 Subject: Create stop.ts (for /stop API route) patched up the route and polished it note: THIS API IS ONLY FOR DEVELOPMENT PURPOSES --- api/src/routes/stop.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 api/src/routes/stop.ts diff --git a/api/src/routes/stop.ts b/api/src/routes/stop.ts new file mode 100644 index 00000000..b4f2de5e --- /dev/null +++ b/api/src/routes/stop.ts @@ -0,0 +1,30 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { User } from "@fosscord/util"; + +const router: Router = Router(); + +router.post("/", route({}), async (req: Request, res: Response) => { + //TODO: have an "OPERATOR" platform permission implemented for this API route + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["flags"] }); + if(user.flags == '4096') { + console.log("user that POSTed to the API was ALLOWED"); + console.log(user.flags); + res.sendStatus(200) + process.kill(process.pid, 'SIGTERM') + } + if(user.flags <= '4095') { + console.log("user that POSTed to the /stop API was DENIED"); + console.log(user.flags); + res.sendStatus(403) + } + if(user.flags >= '4097'){ + console.log("user that POSTed to the /stop API was DENIED"); + console.log(user.flags); + res.sendStatus(403) + } +}); + +export default router; + +//THIS API CAN ONLY BE USED BY USERS WITH THE 'SYSTEM' FLAG ONLY IF ANY OTHER FLAGS ARE ADDED THE REQUEST WILL RETURN 403 'FORBIDDEN' -- cgit 1.5.1 From 4cf4de805bff4ecb55f09d304ee2b451d0729cd6 Mon Sep 17 00:00:00 2001 From: unknownPerson115 <69736850+unknownPerson115@users.noreply.github.com> Date: Sat, 25 Dec 2021 15:33:55 -0600 Subject: Update api/src/routes/stop.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Erkin Alp Güney --- api/src/routes/stop.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/api/src/routes/stop.ts b/api/src/routes/stop.ts index b4f2de5e..c6a3de50 100644 --- a/api/src/routes/stop.ts +++ b/api/src/routes/stop.ts @@ -13,13 +13,8 @@ router.post("/", route({}), async (req: Request, res: Response) => { res.sendStatus(200) process.kill(process.pid, 'SIGTERM') } - if(user.flags <= '4095') { - console.log("user that POSTed to the /stop API was DENIED"); - console.log(user.flags); - res.sendStatus(403) - } - if(user.flags >= '4097'){ - console.log("user that POSTed to the /stop API was DENIED"); + else { + console.log("operation failed"); console.log(user.flags); res.sendStatus(403) } -- cgit 1.5.1