X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fblocklist.ts;h=8ec6cb01d5d66f27bd1150caede84121bcac57c4;hb=9972ace3a3bc65865fb3aaaa865a400386e49252;hp=125ff882c7a5b9ee2e626f78e3c506055d5183c3;hpb=76148b27f7501bac061992136852be4303370c8d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/blocklist.ts b/server/middlewares/validators/blocklist.ts index 125ff882c..8ec6cb01d 100644 --- a/server/middlewares/validators/blocklist.ts +++ b/server/middlewares/validators/blocklist.ts @@ -1,22 +1,21 @@ -import { body, param } from 'express-validator' -import * as express from 'express' -import { logger } from '../../helpers/logger' -import { areValidationErrors } from './utils' +import express from 'express' +import { body, param, query } from 'express-validator' +import { areValidActorHandles } from '@server/helpers/custom-validators/activitypub/actor' +import { getServerActor } from '@server/models/application/application' +import { arrayify } from '@shared/core-utils' +import { HttpStatusCode } from '../../../shared/models/http/http-error-codes' +import { isEachUniqueHostValid, isHostValid } from '../../helpers/custom-validators/servers' +import { WEBSERVER } from '../../initializers/constants' import { AccountBlocklistModel } from '../../models/account/account-blocklist' -import { isHostValid } from '../../helpers/custom-validators/servers' -import { ServerBlocklistModel } from '../../models/server/server-blocklist' import { ServerModel } from '../../models/server/server' -import { WEBSERVER } from '../../initializers/constants' -import { doesAccountNameWithHostExist } from '../../helpers/middlewares' -import { getServerActor } from '@server/models/application/application' -import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' +import { ServerBlocklistModel } from '../../models/server/server-blocklist' +import { areValidationErrors, doesAccountNameWithHostExist } from './shared' const blockAccountValidator = [ - body('accountName').exists().withMessage('Should have an account name with host'), + body('accountName') + .exists(), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking blockAccountByAccountValidator parameters', { parameters: req.body }) - if (areValidationErrors(req, res)) return if (!await doesAccountNameWithHostExist(req.body.accountName, res)) return @@ -36,11 +35,10 @@ const blockAccountValidator = [ ] const unblockAccountByAccountValidator = [ - param('accountName').exists().withMessage('Should have an account name with host'), + param('accountName') + .exists(), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking unblockAccountByAccountValidator parameters', { parameters: req.params }) - if (areValidationErrors(req, res)) return if (!await doesAccountNameWithHostExist(req.params.accountName, res)) return @@ -53,11 +51,10 @@ const unblockAccountByAccountValidator = [ ] const unblockAccountByServerValidator = [ - param('accountName').exists().withMessage('Should have an account name with host'), + param('accountName') + .exists(), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking unblockAccountByServerValidator parameters', { parameters: req.params }) - if (areValidationErrors(req, res)) return if (!await doesAccountNameWithHostExist(req.params.accountName, res)) return @@ -70,11 +67,10 @@ const unblockAccountByServerValidator = [ ] const blockServerValidator = [ - body('host').custom(isHostValid).withMessage('Should have a valid host'), + body('host') + .custom(isHostValid), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking serverGetValidator parameters', { parameters: req.body }) - if (areValidationErrors(req, res)) return const host: string = req.body.host @@ -95,11 +91,10 @@ const blockServerValidator = [ ] const unblockServerByAccountValidator = [ - param('host').custom(isHostValid).withMessage('Should have an account name with host'), + param('host') + .custom(isHostValid), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking unblockServerByAccountValidator parameters', { parameters: req.params }) - if (areValidationErrors(req, res)) return const user = res.locals.oauth.token.User @@ -110,11 +105,10 @@ const unblockServerByAccountValidator = [ ] const unblockServerByServerValidator = [ - param('host').custom(isHostValid).withMessage('Should have an account name with host'), + param('host') + .custom(isHostValid), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking unblockServerByServerValidator parameters', { parameters: req.params }) - if (areValidationErrors(req, res)) return const serverActor = await getServerActor() @@ -124,6 +118,24 @@ const unblockServerByServerValidator = [ } ] +const blocklistStatusValidator = [ + query('hosts') + .optional() + .customSanitizer(arrayify) + .custom(isEachUniqueHostValid).withMessage('Should have a valid hosts array'), + + query('accounts') + .optional() + .customSanitizer(arrayify) + .custom(areValidActorHandles).withMessage('Should have a valid accounts array'), + + (req: express.Request, res: express.Response, next: express.NextFunction) => { + if (areValidationErrors(req, res)) return + + return next() + } +] + // --------------------------------------------------------------------------- export { @@ -132,7 +144,8 @@ export { unblockAccountByAccountValidator, unblockServerByAccountValidator, unblockAccountByServerValidator, - unblockServerByServerValidator + unblockServerByServerValidator, + blocklistStatusValidator } // ---------------------------------------------------------------------------