From 58b7ebdd5aa61f3021b3f4328a96a4417357f05e Mon Sep 17 00:00:00 2001 From: Bloom Sirenix <66263341+bloomsirenix@users.noreply.github.com> Date: Sat, 22 May 2021 22:34:34 +0200 Subject: [PATCH 1/5] Added Delete function and dummy disable function --- src/routes/users/@me/delete.ts | 26 ++++++++++++++++++++++++++ src/routes/users/@me/disable.ts | 10 ++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/routes/users/@me/delete.ts create mode 100644 src/routes/users/@me/disable.ts diff --git a/src/routes/users/@me/delete.ts b/src/routes/users/@me/delete.ts new file mode 100644 index 00000000..68dbf0ae --- /dev/null +++ b/src/routes/users/@me/delete.ts @@ -0,0 +1,26 @@ +import { Router, Request, Response } from "express"; +import { UserModel, toObject } from "@fosscord/server-util"; +import { getPublicUser } from "../../../util/User"; +import { HTTPError } from "lambert-server"; +import { UserUpdateSchema } from "../../../schema/User"; +import { check } from "../../../util/instanceOf"; +import { db } from "@fosscord/server-util"; +const router = Router(); + +router.post("/", async (req: Request, res: Response) => { + // TODO: + const { authorization } = req.headers; + //console.log(req.headers); + console.log(authorization); + var auth = ""+ authorization; + let u = JSON.parse(atob(auth.split(".")[1])) + var userid = u.id; + console.log(userid); + const user = await getPublicUser(userid); + await UserModel.remove(user).exec(); + //await usermodel.save(); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/routes/users/@me/disable.ts b/src/routes/users/@me/disable.ts new file mode 100644 index 00000000..ab3ce58c --- /dev/null +++ b/src/routes/users/@me/disable.ts @@ -0,0 +1,10 @@ +import { Router } from "express"; + +const router = Router(); + +router.post("/", (req, res) => { + // TODO: + res.sendStatus(204); +}); + +export default router; From d7d88682824e69a740fe5e81270d2757b4554f74 Mon Sep 17 00:00:00 2001 From: Bloom Sirenix <66263341+bloomsirenix@users.noreply.github.com> Date: Sat, 22 May 2021 22:55:52 +0200 Subject: [PATCH 2/5] Made Delete request easier for users less of an pain --- src/routes/users/@me/delete.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/routes/users/@me/delete.ts b/src/routes/users/@me/delete.ts index 68dbf0ae..8341a746 100644 --- a/src/routes/users/@me/delete.ts +++ b/src/routes/users/@me/delete.ts @@ -9,15 +9,9 @@ const router = Router(); router.post("/", async (req: Request, res: Response) => { // TODO: - const { authorization } = req.headers; //console.log(req.headers); - console.log(authorization); - var auth = ""+ authorization; - let u = JSON.parse(atob(auth.split(".")[1])) - var userid = u.id; - console.log(userid); - const user = await getPublicUser(userid); - await UserModel.remove(user).exec(); + await UserModel.deleteOne({id: req.user_id}).exec() + //await usermodel.save(); res.sendStatus(204); From e874a946af87fe213ccd0182b44f144f224d0249 Mon Sep 17 00:00:00 2001 From: Bloom Sirenix <66263341+bloomsirenix@users.noreply.github.com> Date: Sat, 22 May 2021 23:30:08 +0200 Subject: [PATCH 3/5] Added password check :heavy_check_mark: Only works if user types right password :no_entry_sign: No more kids getting there account deleted by there brother --- src/routes/users/@me/delete.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/routes/users/@me/delete.ts b/src/routes/users/@me/delete.ts index 8341a746..8ef67b7a 100644 --- a/src/routes/users/@me/delete.ts +++ b/src/routes/users/@me/delete.ts @@ -1,20 +1,29 @@ import { Router, Request, Response } from "express"; -import { UserModel, toObject } from "@fosscord/server-util"; +import { UserModel,UserDocument, toObject } from "@fosscord/server-util"; import { getPublicUser } from "../../../util/User"; import { HTTPError } from "lambert-server"; import { UserUpdateSchema } from "../../../schema/User"; import { check } from "../../../util/instanceOf"; import { db } from "@fosscord/server-util"; +import bcrypt from "bcrypt"; const router = Router(); router.post("/", async (req: Request, res: Response) => { - // TODO: - //console.log(req.headers); - await UserModel.deleteOne({id: req.user_id}).exec() + + const user = await UserModel.findOne( + { id: req.user_id }, + + ).exec(); //User object - //await usermodel.save(); + let correctpass = await bcrypt.compare(req.body.password,user!.user_data.hash) //Not sure if user typed right password :/ + if(correctpass){ + await UserModel.deleteOne({id: req.user_id}).exec() //Yeetus the feetus user deletus res.sendStatus(204); + } + else{ + res.sendStatus(204); + } }); export default router; From 2c077dfa041fda9c900c44f5656ff9b8335ee3d8 Mon Sep 17 00:00:00 2001 From: Bloom Sirenix <66263341+bloomsirenix@users.noreply.github.com> Date: Sat, 22 May 2021 23:56:04 +0200 Subject: [PATCH 4/5] Update delete.ts --- src/routes/users/@me/delete.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/users/@me/delete.ts b/src/routes/users/@me/delete.ts index 8ef67b7a..39294901 100644 --- a/src/routes/users/@me/delete.ts +++ b/src/routes/users/@me/delete.ts @@ -17,7 +17,7 @@ router.post("/", async (req: Request, res: Response) => { let correctpass = await bcrypt.compare(req.body.password,user!.user_data.hash) //Not sure if user typed right password :/ if(correctpass){ - await UserModel.deleteOne({id: req.user_id}).exec() //Yeetus the feetus user deletus + await UserModel.deleteOne({id: req.user_id}).exec() //Yeetus user deletus res.sendStatus(204); } From 8d344a4d00412433a3b867ea41e3c31565296604 Mon Sep 17 00:00:00 2001 From: Bloom Sirenix <66263341+bloomsirenix@users.noreply.github.com> Date: Sun, 23 May 2021 04:51:02 +0200 Subject: [PATCH 5/5] added basic error status 401 unauthorized --- src/routes/users/@me/delete.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/routes/users/@me/delete.ts b/src/routes/users/@me/delete.ts index 39294901..ec4cc223 100644 --- a/src/routes/users/@me/delete.ts +++ b/src/routes/users/@me/delete.ts @@ -3,7 +3,7 @@ import { UserModel,UserDocument, toObject } from "@fosscord/server-util"; import { getPublicUser } from "../../../util/User"; import { HTTPError } from "lambert-server"; import { UserUpdateSchema } from "../../../schema/User"; -import { check } from "../../../util/instanceOf"; +import { check, FieldErrors, Length } from "../../../util/instanceOf"; import { db } from "@fosscord/server-util"; import bcrypt from "bcrypt"; const router = Router(); @@ -22,7 +22,8 @@ router.post("/", async (req: Request, res: Response) => { res.sendStatus(204); } else{ - res.sendStatus(204); + res.sendStatus(401); + } });