X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fabuse.ts;h=d6211cc83e807a0c7591b61564f841c9fbf062ee;hb=98ebfa39500ce9dfbb782e43c4d269f9a2989698;hp=03e6be8c8db7c501a634d3ac573b5900898c80b8;hpb=594d3e48d8a887bbf48ce4cc594c1c36c9640fb1;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/abuse.ts b/server/controllers/api/abuse.ts index 03e6be8c8..d6211cc83 100644 --- a/server/controllers/api/abuse.ts +++ b/server/controllers/api/abuse.ts @@ -1,9 +1,12 @@ -import * as express from 'express' +import express from 'express' +import { logger } from '@server/helpers/logger' import { createAccountAbuse, createVideoAbuse, createVideoCommentAbuse } from '@server/lib/moderation' +import { Notifier } from '@server/lib/notifier' import { AbuseModel } from '@server/models/abuse/abuse' import { AbuseMessageModel } from '@server/models/abuse/abuse-message' import { getServerActor } from '@server/models/application/application' -import { AbuseCreate, abusePredefinedReasonsMap, AbuseState, UserRight } from '../../../shared' +import { abusePredefinedReasonsMap } from '@shared/core-utils/abuse' +import { AbuseCreate, AbuseState, HttpStatusCode, UserRight } from '@shared/models' import { getFormattedObjects } from '../../helpers/utils' import { sequelizeTypescript } from '../../initializers/database' import { @@ -20,17 +23,17 @@ import { deleteAbuseMessageValidator, ensureUserHasRight, getAbuseValidator, + openapiOperationDoc, paginationValidator, setDefaultPagination, setDefaultSort } from '../../middlewares' import { AccountModel } from '../../models/account/account' -import { Notifier } from '@server/lib/notifier' -import { logger } from '@server/helpers/logger' const abuseRouter = express.Router() abuseRouter.get('/', + openapiOperationDoc({ operationId: 'getAbuses' }), authenticate, ensureUserHasRight(UserRight.MANAGE_ABUSES), paginationValidator, @@ -84,13 +87,7 @@ abuseRouter.delete('/:id/messages/:messageId', // --------------------------------------------------------------------------- export { - abuseRouter, - - // FIXME: deprecated in 2.3. Remove these exports - listAbusesForAdmins, - updateAbuse, - deleteAbuse, - reportAbuse + abuseRouter } // --------------------------------------------------------------------------- @@ -146,7 +143,7 @@ async function updateAbuse (req: express.Request, res: express.Response) { // Do not send the delete to other instances, we updated OUR copy of this abuse - return res.sendStatus(204) + return res.status(HttpStatusCode.NO_CONTENT_204).end() } async function deleteAbuse (req: express.Request, res: express.Response) { @@ -158,7 +155,7 @@ async function deleteAbuse (req: express.Request, res: express.Response) { // Do not send the delete to other instances, we delete OUR copy of this abuse - return res.sendStatus(204) + return res.status(HttpStatusCode.NO_CONTENT_204).end() } async function reportAbuse (req: express.Request, res: express.Response) { @@ -169,7 +166,11 @@ async function reportAbuse (req: express.Request, res: express.Response) { const body: AbuseCreate = req.body const { id } = await sequelizeTypescript.transaction(async t => { - const reporterAccount = await AccountModel.load(res.locals.oauth.token.User.Account.id, t) + const user = res.locals.oauth.token.User + // Don't send abuse notification if reporter is an admin/moderator + const skipNotification = user.hasRight(UserRight.MANAGE_ABUSES) + + const reporterAccount = await AccountModel.load(user.Account.id, t) const predefinedReasons = body.predefinedReasons?.map(r => abusePredefinedReasonsMap[r]) const baseAbuse = { @@ -186,7 +187,8 @@ async function reportAbuse (req: express.Request, res: express.Response) { reporterAccount, transaction: t, startAt: body.video.startAt, - endAt: body.video.endAt + endAt: body.video.endAt, + skipNotification }) } @@ -195,7 +197,8 @@ async function reportAbuse (req: express.Request, res: express.Response) { baseAbuse, commentInstance, reporterAccount, - transaction: t + transaction: t, + skipNotification }) } @@ -204,7 +207,8 @@ async function reportAbuse (req: express.Request, res: express.Response) { baseAbuse, accountInstance, reporterAccount, - transaction: t + transaction: t, + skipNotification }) }) @@ -248,5 +252,5 @@ async function deleteAbuseMessage (req: express.Request, res: express.Response) return abuseMessage.destroy({ transaction: t }) }) - return res.sendStatus(204) + return res.status(HttpStatusCode.NO_CONTENT_204).end() }