Server: do not allow a user to remove a video of another user
[oweals/peertube.git] / server / middlewares / validators / remote.js
1 'use strict'
2
3 const checkErrors = require('./utils').checkErrors
4 const logger = require('../../helpers/logger')
5
6 const validatorsRemote = {
7   dataToDecrypt: dataToDecrypt,
8   remoteVideos: remoteVideos,
9   signature: signature
10 }
11
12 function dataToDecrypt (req, res, next) {
13   req.checkBody('key', 'Should have a key').notEmpty()
14   req.checkBody('data', 'Should have data').notEmpty()
15
16   logger.debug('Checking dataToDecrypt parameters', { parameters: { keyLength: req.body.key.length, bodyLength: req.body.data.length } })
17
18   checkErrors(req, res, next)
19 }
20
21 function remoteVideos (req, res, next) {
22   req.checkBody('data').isArray()
23   req.checkBody('data').isEachRemoteVideosValid()
24
25   logger.debug('Checking remoteVideos parameters', { parameters: req.body })
26
27   checkErrors(req, res, next)
28 }
29
30 function signature (req, res, next) {
31   req.checkBody('signature.url', 'Should have a signature url').isURL()
32   req.checkBody('signature.signature', 'Should have a signature').notEmpty()
33
34   logger.debug('Checking signature parameters', { parameters: { signatureUrl: req.body.signature.url } })
35
36   checkErrors(req, res, next)
37 }
38
39 // ---------------------------------------------------------------------------
40
41 module.exports = validatorsRemote