From 92b9d60c00432c58d6184f3683bdb14a0300a3c6 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 8 Aug 2018 10:55:27 +0200 Subject: Add ability to delete our account --- server/controllers/api/users.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'server/controllers/api') diff --git a/server/controllers/api/users.ts b/server/controllers/api/users.ts index 36bf0e0fe..3d2586c3a 100644 --- a/server/controllers/api/users.ts +++ b/server/controllers/api/users.ts @@ -30,6 +30,7 @@ import { usersVideoRatingValidator } from '../../middlewares' import { + deleteMeValidator, usersAskResetPasswordValidator, usersResetPasswordValidator, videoImportsSortValidator, @@ -62,6 +63,11 @@ usersRouter.get('/me', authenticate, asyncMiddleware(getUserInformation) ) +usersRouter.delete('/me', + authenticate, + asyncMiddleware(deleteMeValidator), + asyncMiddleware(deleteMe) +) usersRouter.get('/me/video-quota-used', authenticate, @@ -296,8 +302,18 @@ async function listUsers (req: express.Request, res: express.Response, next: exp return res.json(getFormattedObjects(resultList.data, resultList.total)) } +async function deleteMe (req: express.Request, res: express.Response) { + const user: UserModel = res.locals.oauth.token.User + + await user.destroy() + + auditLogger.delete(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new UserAuditView(user.toFormattedJSON())) + + return res.sendStatus(204) +} + async function removeUser (req: express.Request, res: express.Response, next: express.NextFunction) { - const user = await UserModel.loadById(req.params.id) + const user: UserModel = res.locals.user await user.destroy() -- cgit v1.2.3