X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fmiddlewares%2Fvalidators%2Faccount.ts;h=3573a9a5053a970a9c8abdeb1d75df51e0cd4ee1;hb=01de67b9a4fcdf01102ccc3cb7dc24beebf6c7ea;hp=3ccf2ea214f2547e8ace7da54c2f39a14d90a1d1;hpb=7a7724e66e4533523083e7336cd0d0c747c4a33b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/account.ts b/server/middlewares/validators/account.ts index 3ccf2ea21..3573a9a50 100644 --- a/server/middlewares/validators/account.ts +++ b/server/middlewares/validators/account.ts @@ -1,27 +1,19 @@ import * as express from 'express' import { param } from 'express-validator/check' -import { - isUserDisplayNSFWValid, - isUserPasswordValid, - isUserRoleValid, - isUserUsernameValid, - isUserVideoQuotaValid, - logger -} from '../../helpers' -import { isAccountNameWithHostValid } from '../../helpers/custom-validators/video-accounts' -import { database as db } from '../../initializers/database' -import { AccountInstance } from '../../models' -import { checkErrors } from './utils' +import { isAccountNameValid, isLocalAccountNameExist } from '../../helpers/custom-validators/accounts' +import { logger } from '../../helpers/logger' +import { areValidationErrors } from './utils' const localAccountValidator = [ - param('nameWithHost').custom(isAccountNameWithHostValid).withMessage('Should have a valid account with domain name (myuser@domain.tld)'), + param('name').custom(isAccountNameValid).withMessage('Should have a valid account name'), - (req: express.Request, res: express.Response, next: express.NextFunction) => { + async (req: express.Request, res: express.Response, next: express.NextFunction) => { logger.debug('Checking localAccountValidator parameters', { parameters: req.params }) - checkErrors(req, res, () => { - checkLocalAccountExists(req.params.name, res, next) - }) + if (areValidationErrors(req, res)) return + if (!await isLocalAccountNameExist(req.params.name, res)) return + + return next() } ] @@ -30,25 +22,3 @@ const localAccountValidator = [ export { localAccountValidator } - -// --------------------------------------------------------------------------- - -function checkLocalAccountExists (nameWithHost: string, res: express.Response, callback: (err: Error, account: AccountInstance) => void) { - const [ name, host ] = nameWithHost.split('@') - - db.Account.loadLocalAccountByNameAndPod(name, host) - .then(account => { - if (!account) { - return res.status(404) - .send({ error: 'Account not found' }) - .end() - } - - res.locals.account = account - return callback(null, account) - }) - .catch(err => { - logger.error('Error in account request validator.', err) - return res.sendStatus(500) - }) -}