X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fblocklist.ts;h=f61811a1a6983190991bd98c72f423bc24d22d2e;hb=f479685678406a5df864d89615b33d29085ebfc6;hp=109276c630ce21acca5de435e3c25debfa629370;hpb=88108880bbdba473cfe36ecbebc1c3c4f972e102;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/blocklist.ts b/server/middlewares/validators/blocklist.ts index 109276c63..f61811a1a 100644 --- a/server/middlewares/validators/blocklist.ts +++ b/server/middlewares/validators/blocklist.ts @@ -1,15 +1,15 @@ -import { body, param } from 'express-validator/check' +import { body, param } from 'express-validator' import * as express from 'express' import { logger } from '../../helpers/logger' import { areValidationErrors } from './utils' -import { isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts' -import { UserModel } from '../../models/account/user' 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 { CONFIG } from '../../initializers' -import { getServerActor } from '../../helpers/utils' +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' const blockAccountValidator = [ body('accountName').exists().withMessage('Should have an account name with host'), @@ -18,15 +18,14 @@ const blockAccountValidator = [ logger.debug('Checking blockAccountByAccountValidator parameters', { parameters: req.body }) if (areValidationErrors(req, res)) return - if (!await isAccountNameWithHostExist(req.body.accountName, res)) return + if (!await doesAccountNameWithHostExist(req.body.accountName, res)) return - const user = res.locals.oauth.token.User as UserModel + const user = res.locals.oauth.token.User const accountToBlock = res.locals.account if (user.Account.id === accountToBlock.id) { - res.status(409) - .send({ error: 'You cannot block yourself.' }) - .end() + res.status(HttpStatusCode.CONFLICT_409) + .json({ error: 'You cannot block yourself.' }) return } @@ -42,11 +41,11 @@ const unblockAccountByAccountValidator = [ logger.debug('Checking unblockAccountByAccountValidator parameters', { parameters: req.params }) if (areValidationErrors(req, res)) return - if (!await isAccountNameWithHostExist(req.params.accountName, res)) return + if (!await doesAccountNameWithHostExist(req.params.accountName, res)) return - const user = res.locals.oauth.token.User as UserModel + const user = res.locals.oauth.token.User const targetAccount = res.locals.account - if (!await isUnblockAccountExists(user.Account.id, targetAccount.id, res)) return + if (!await doesUnblockAccountExist(user.Account.id, targetAccount.id, res)) return return next() } @@ -59,11 +58,11 @@ const unblockAccountByServerValidator = [ logger.debug('Checking unblockAccountByServerValidator parameters', { parameters: req.params }) if (areValidationErrors(req, res)) return - if (!await isAccountNameWithHostExist(req.params.accountName, res)) return + if (!await doesAccountNameWithHostExist(req.params.accountName, res)) return const serverActor = await getServerActor() const targetAccount = res.locals.account - if (!await isUnblockAccountExists(serverActor.Account.id, targetAccount.id, res)) return + if (!await doesUnblockAccountExist(serverActor.Account.id, targetAccount.id, res)) return return next() } @@ -79,18 +78,12 @@ const blockServerValidator = [ const host: string = req.body.host - if (host === CONFIG.WEBSERVER.HOST) { - return res.status(409) - .send({ error: 'You cannot block your own server.' }) - .end() + if (host === WEBSERVER.HOST) { + return res.status(HttpStatusCode.CONFLICT_409) + .json({ error: 'You cannot block your own server.' }) } - const server = await ServerModel.loadByHost(host) - if (!server) { - return res.status(404) - .send({ error: 'Server host not found.' }) - .end() - } + const server = await ServerModel.loadOrCreateByHost(host) res.locals.server = server @@ -106,8 +99,8 @@ const unblockServerByAccountValidator = [ if (areValidationErrors(req, res)) return - const user = res.locals.oauth.token.User as UserModel - if (!await isUnblockServerExists(user.Account.id, req.params.host, res)) return + const user = res.locals.oauth.token.User + if (!await doesUnblockServerExist(user.Account.id, req.params.host, res)) return return next() } @@ -122,7 +115,7 @@ const unblockServerByServerValidator = [ if (areValidationErrors(req, res)) return const serverActor = await getServerActor() - if (!await isUnblockServerExists(serverActor.Account.id, req.params.host, res)) return + if (!await doesUnblockServerExist(serverActor.Account.id, req.params.host, res)) return return next() } @@ -141,12 +134,11 @@ export { // --------------------------------------------------------------------------- -async function isUnblockAccountExists (accountId: number, targetAccountId: number, res: express.Response) { +async function doesUnblockAccountExist (accountId: number, targetAccountId: number, res: express.Response) { const accountBlock = await AccountBlocklistModel.loadByAccountAndTarget(accountId, targetAccountId) if (!accountBlock) { - res.status(404) - .send({ error: 'Account block entry not found.' }) - .end() + res.status(HttpStatusCode.NOT_FOUND_404) + .json({ error: 'Account block entry not found.' }) return false } @@ -156,12 +148,11 @@ async function isUnblockAccountExists (accountId: number, targetAccountId: numbe return true } -async function isUnblockServerExists (accountId: number, host: string, res: express.Response) { +async function doesUnblockServerExist (accountId: number, host: string, res: express.Response) { const serverBlock = await ServerBlocklistModel.loadByAccountAndHost(accountId, host) if (!serverBlock) { - res.status(404) - .send({ error: 'Server block entry not found.' }) - .end() + res.status(HttpStatusCode.NOT_FOUND_404) + .json({ error: 'Server block entry not found.' }) return false }