From 4e68fc8605bff02f4c79deafc24cb39779802d0d Mon Sep 17 00:00:00 2001 From: kimsible Date: Wed, 29 Jul 2020 16:23:42 +0200 Subject: [PATCH] Add validator channelName for create-user api --- server/middlewares/validators/users.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/middlewares/validators/users.ts b/server/middlewares/validators/users.ts index 423da9bc0..aff18be3d 100644 --- a/server/middlewares/validators/users.ts +++ b/server/middlewares/validators/users.ts @@ -56,6 +56,7 @@ const usersAddValidator = [ body('username').custom(isUserUsernameValid).withMessage('Should have a valid username (lowercase alphanumeric characters)'), body('password').custom(isUserPasswordValidOrEmpty).withMessage('Should have a valid password'), body('email').isEmail().withMessage('Should have a valid email'), + body('channelName').custom(isActorPreferredUsernameValid).withMessage('Should have a valid channel name'), body('videoQuota').custom(isUserVideoQuotaValid).withMessage('Should have a valid user quota'), body('videoQuotaDaily').custom(isUserVideoQuotaDailyValid).withMessage('Should have a valid daily user quota'), body('role') @@ -75,6 +76,22 @@ const usersAddValidator = [ .json({ error: 'You can only create users (and not administrators or moderators)' }) } + if (!req.body.channelName) { + return res.status(400) + .json({ error: 'Channel name is required.' }) + } + + if (req.body.channelName === req.body.username) { + return res.status(400) + .json({ error: 'Channel name cannot be the same as user username.' }) + } + + const existing = await ActorModel.loadLocalByName(req.body.channelName) + if (existing) { + return res.status(409) + .json({ error: `Channel with name ${req.body.channelName} already exists.` }) + } + return next() } ]