aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/middlewares
diff options
context:
space:
mode:
Diffstat (limited to 'server/middlewares')
-rw-r--r--server/middlewares/validators/users.ts41
1 files changed, 39 insertions, 2 deletions
diff --git a/server/middlewares/validators/users.ts b/server/middlewares/validators/users.ts
index eeb0e3557..ebb343535 100644
--- a/server/middlewares/validators/users.ts
+++ b/server/middlewares/validators/users.ts
@@ -53,16 +53,35 @@ function usersRemoveValidator (req: express.Request, res: express.Response, next
53 53
54function usersUpdateValidator (req: express.Request, res: express.Response, next: express.NextFunction) { 54function usersUpdateValidator (req: express.Request, res: express.Response, next: express.NextFunction) {
55 req.checkParams('id', 'Should have a valid id').notEmpty().isInt() 55 req.checkParams('id', 'Should have a valid id').notEmpty().isInt()
56 req.checkBody('email', 'Should have a valid email attribute').optional().isEmail()
57 req.checkBody('videoQuota', 'Should have a valid user quota').optional().isUserVideoQuotaValid()
58
59 logger.debug('Checking usersUpdate parameters', { parameters: req.body })
60
61 checkErrors(req, res, () => {
62 checkUserExists(req.params.id, res, next)
63 })
64}
65
66function usersUpdateMeValidator (req: express.Request, res: express.Response, next: express.NextFunction) {
56 // Add old password verification 67 // Add old password verification
57 req.checkBody('password', 'Should have a valid password').optional().isUserPasswordValid() 68 req.checkBody('password', 'Should have a valid password').optional().isUserPasswordValid()
69 req.checkBody('email', 'Should have a valid email attribute').optional().isEmail()
58 req.checkBody('displayNSFW', 'Should have a valid display Not Safe For Work attribute').optional().isUserDisplayNSFWValid() 70 req.checkBody('displayNSFW', 'Should have a valid display Not Safe For Work attribute').optional().isUserDisplayNSFWValid()
59 req.checkBody('videoQuota', 'Should have a valid user quota').optional().isUserVideoQuotaValid()
60 71
61 logger.debug('Checking usersUpdate parameters', { parameters: req.body }) 72 logger.debug('Checking usersUpdate parameters', { parameters: req.body })
62 73
63 checkErrors(req, res, next) 74 checkErrors(req, res, next)
64} 75}
65 76
77function usersGetValidator (req: express.Request, res: express.Response, next: express.NextFunction) {
78 req.checkParams('id', 'Should have a valid id').notEmpty().isInt()
79
80 checkErrors(req, res, () => {
81 checkUserExists(req.params.id, res, next)
82 })
83}
84
66function usersVideoRatingValidator (req: express.Request, res: express.Response, next: express.NextFunction) { 85function usersVideoRatingValidator (req: express.Request, res: express.Response, next: express.NextFunction) {
67 req.checkParams('videoId', 'Should have a valid video id').notEmpty().isVideoIdOrUUIDValid() 86 req.checkParams('videoId', 'Should have a valid video id').notEmpty().isVideoIdOrUUIDValid()
68 87
@@ -106,6 +125,24 @@ export {
106 usersAddValidator, 125 usersAddValidator,
107 usersRemoveValidator, 126 usersRemoveValidator,
108 usersUpdateValidator, 127 usersUpdateValidator,
128 usersUpdateMeValidator,
109 usersVideoRatingValidator, 129 usersVideoRatingValidator,
110 ensureUserRegistrationAllowed 130 ensureUserRegistrationAllowed,
131 usersGetValidator
132}
133
134// ---------------------------------------------------------------------------
135
136function checkUserExists (id: number, res: express.Response, callback: () => void) {
137 db.User.loadById(id)
138 .then(user => {
139 if (!user) return res.status(404).send('User not found')
140
141 res.locals.user = user
142 callback()
143 })
144 .catch(err => {
145 logger.error('Error in user request validator.', err)
146 return res.sendStatus(500)
147 })
111} 148}