]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/users.ts
Add blacklist reason field
[github/Chocobozzz/PeerTube.git] / server / controllers / api / users.ts
index 8f429d0b5f128089b18b5487ec578f1eaac53fb2..543b20baa647604a9339a62c370b77419ab49761 100644 (file)
@@ -201,14 +201,14 @@ async function getUserVideos (req: express.Request, res: express.Response, next:
     user.Account.id,
     req.query.start as number,
     req.query.count as number,
-    req.query.sort as VideoSortField,
-    false // Display my NSFW videos
+    req.query.sort as VideoSortField
   )
 
   const additionalAttributes = {
     waitTranscoding: true,
     state: true,
-    scheduledUpdate: true
+    scheduledUpdate: true,
+    blacklistInfo: true
   }
   return res.json(getFormattedObjects(resultList.data, resultList.total, { additionalAttributes }))
 }
@@ -302,8 +302,9 @@ async function unblockUser (req: express.Request, res: express.Response, next: e
 
 async function blockUser (req: express.Request, res: express.Response, next: express.NextFunction) {
   const user: UserModel = res.locals.user
+  const reason = req.body.reason
 
-  await changeUserBlock(res, user, true)
+  await changeUserBlock(res, user, true, reason)
 
   return res.status(204).end()
 }
@@ -454,10 +455,11 @@ function success (req: express.Request, res: express.Response, next: express.Nex
   res.end()
 }
 
-async function changeUserBlock (res: express.Response, user: UserModel, block: boolean) {
+async function changeUserBlock (res: express.Response, user: UserModel, block: boolean, reason?: string) {
   const oldUserAuditView = new UserAuditView(user.toFormattedJSON())
 
   user.blocked = block
+  user.blockedReason = reason || null
 
   await sequelizeTypescript.transaction(async t => {
     await OAuthTokenModel.deleteUserToken(user.id, t)
@@ -465,6 +467,8 @@ async function changeUserBlock (res: express.Response, user: UserModel, block: b
     await user.save({ transaction: t })
   })
 
+  await Emailer.Instance.addUserBlockJob(user, block, reason)
+
   auditLogger.update(
     res.locals.oauth.token.User.Account.Actor.getIdentifier(),
     new UserAuditView(user.toFormattedJSON()),