diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-01-04 20:59:23 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-01-04 21:05:13 +0100 |
commit | 55fa55a9be566cca2ba95322f2ae23b434aed62a (patch) | |
tree | f51ef35c120ce8a928917a659418079538cdb8dc /server/middlewares | |
parent | a6fd2b30bf717eec14972a2175354781f5f43e77 (diff) | |
download | PeerTube-55fa55a9be566cca2ba95322f2ae23b434aed62a.tar.gz PeerTube-55fa55a9be566cca2ba95322f2ae23b434aed62a.tar.zst PeerTube-55fa55a9be566cca2ba95322f2ae23b434aed62a.zip |
Server: add video abuse support
Diffstat (limited to 'server/middlewares')
-rw-r--r-- | server/middlewares/sort.js | 7 | ||||
-rw-r--r-- | server/middlewares/validators/remote/index.js | 13 | ||||
-rw-r--r-- | server/middlewares/validators/remote/signature.js (renamed from server/middlewares/validators/remote.js) | 17 | ||||
-rw-r--r-- | server/middlewares/validators/remote/videos.js | 20 | ||||
-rw-r--r-- | server/middlewares/validators/sort.js | 23 | ||||
-rw-r--r-- | server/middlewares/validators/videos.js | 15 |
6 files changed, 74 insertions, 21 deletions
diff --git a/server/middlewares/sort.js b/server/middlewares/sort.js index 477e10571..39e167265 100644 --- a/server/middlewares/sort.js +++ b/server/middlewares/sort.js | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | const sortMiddleware = { | 3 | const sortMiddleware = { |
4 | setUsersSort, | 4 | setUsersSort, |
5 | setVideoAbusesSort, | ||
5 | setVideosSort | 6 | setVideosSort |
6 | } | 7 | } |
7 | 8 | ||
@@ -11,6 +12,12 @@ function setUsersSort (req, res, next) { | |||
11 | return next() | 12 | return next() |
12 | } | 13 | } |
13 | 14 | ||
15 | function setVideoAbusesSort (req, res, next) { | ||
16 | if (!req.query.sort) req.query.sort = '-createdAt' | ||
17 | |||
18 | return next() | ||
19 | } | ||
20 | |||
14 | function setVideosSort (req, res, next) { | 21 | function setVideosSort (req, res, next) { |
15 | if (!req.query.sort) req.query.sort = '-createdAt' | 22 | if (!req.query.sort) req.query.sort = '-createdAt' |
16 | 23 | ||
diff --git a/server/middlewares/validators/remote/index.js b/server/middlewares/validators/remote/index.js new file mode 100644 index 000000000..022a2fe50 --- /dev/null +++ b/server/middlewares/validators/remote/index.js | |||
@@ -0,0 +1,13 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | const remoteSignatureValidators = require('./signature') | ||
4 | const remoteVideosValidators = require('./videos') | ||
5 | |||
6 | const validators = { | ||
7 | signature: remoteSignatureValidators, | ||
8 | videos: remoteVideosValidators | ||
9 | } | ||
10 | |||
11 | // --------------------------------------------------------------------------- | ||
12 | |||
13 | module.exports = validators | ||
diff --git a/server/middlewares/validators/remote.js b/server/middlewares/validators/remote/signature.js index 858d193cc..5880a2c2c 100644 --- a/server/middlewares/validators/remote.js +++ b/server/middlewares/validators/remote/signature.js | |||
@@ -1,21 +1,12 @@ | |||
1 | 'use strict' | 1 | 'use strict' |
2 | 2 | ||
3 | const checkErrors = require('./utils').checkErrors | 3 | const checkErrors = require('../utils').checkErrors |
4 | const logger = require('../../helpers/logger') | 4 | const logger = require('../../../helpers/logger') |
5 | 5 | ||
6 | const validatorsRemote = { | 6 | const validatorsRemoteSignature = { |
7 | remoteVideos, | ||
8 | signature | 7 | signature |
9 | } | 8 | } |
10 | 9 | ||
11 | function remoteVideos (req, res, next) { | ||
12 | req.checkBody('data').isEachRemoteVideosValid() | ||
13 | |||
14 | logger.debug('Checking remoteVideos parameters', { parameters: req.body }) | ||
15 | |||
16 | checkErrors(req, res, next) | ||
17 | } | ||
18 | |||
19 | function signature (req, res, next) { | 10 | function signature (req, res, next) { |
20 | req.checkBody('signature.host', 'Should have a signature host').isURL() | 11 | req.checkBody('signature.host', 'Should have a signature host').isURL() |
21 | req.checkBody('signature.signature', 'Should have a signature').notEmpty() | 12 | req.checkBody('signature.signature', 'Should have a signature').notEmpty() |
@@ -27,4 +18,4 @@ function signature (req, res, next) { | |||
27 | 18 | ||
28 | // --------------------------------------------------------------------------- | 19 | // --------------------------------------------------------------------------- |
29 | 20 | ||
30 | module.exports = validatorsRemote | 21 | module.exports = validatorsRemoteSignature |
diff --git a/server/middlewares/validators/remote/videos.js b/server/middlewares/validators/remote/videos.js new file mode 100644 index 000000000..cf9925b6c --- /dev/null +++ b/server/middlewares/validators/remote/videos.js | |||
@@ -0,0 +1,20 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | const checkErrors = require('../utils').checkErrors | ||
4 | const logger = require('../../../helpers/logger') | ||
5 | |||
6 | const validatorsRemoteVideos = { | ||
7 | remoteVideos | ||
8 | } | ||
9 | |||
10 | function remoteVideos (req, res, next) { | ||
11 | req.checkBody('data').isEachRemoteRequestVideosValid() | ||
12 | |||
13 | logger.debug('Checking remoteVideos parameters', { parameters: req.body }) | ||
14 | |||
15 | checkErrors(req, res, next) | ||
16 | } | ||
17 | |||
18 | // --------------------------------------------------------------------------- | ||
19 | |||
20 | module.exports = validatorsRemoteVideos | ||
diff --git a/server/middlewares/validators/sort.js b/server/middlewares/validators/sort.js index 431d3fffd..b7eec0316 100644 --- a/server/middlewares/validators/sort.js +++ b/server/middlewares/validators/sort.js | |||
@@ -6,29 +6,38 @@ const logger = require('../../helpers/logger') | |||
6 | 6 | ||
7 | const validatorsSort = { | 7 | const validatorsSort = { |
8 | usersSort, | 8 | usersSort, |
9 | videoAbusesSort, | ||
9 | videosSort | 10 | videosSort |
10 | } | 11 | } |
11 | 12 | ||
12 | function usersSort (req, res, next) { | 13 | function usersSort (req, res, next) { |
13 | const sortableColumns = constants.SORTABLE_COLUMNS.USERS | 14 | const sortableColumns = constants.SORTABLE_COLUMNS.USERS |
14 | 15 | ||
15 | req.checkQuery('sort', 'Should have correct sortable column').optional().isIn(sortableColumns) | 16 | checkSort(req, res, next, sortableColumns) |
17 | } | ||
16 | 18 | ||
17 | logger.debug('Checking sort parameters', { parameters: req.query }) | 19 | function videoAbusesSort (req, res, next) { |
20 | const sortableColumns = constants.SORTABLE_COLUMNS.VIDEO_ABUSES | ||
18 | 21 | ||
19 | checkErrors(req, res, next) | 22 | checkSort(req, res, next, sortableColumns) |
20 | } | 23 | } |
21 | 24 | ||
22 | function videosSort (req, res, next) { | 25 | function videosSort (req, res, next) { |
23 | const sortableColumns = constants.SORTABLE_COLUMNS.VIDEOS | 26 | const sortableColumns = constants.SORTABLE_COLUMNS.VIDEOS |
24 | 27 | ||
28 | checkSort(req, res, next, sortableColumns) | ||
29 | } | ||
30 | |||
31 | // --------------------------------------------------------------------------- | ||
32 | |||
33 | module.exports = validatorsSort | ||
34 | |||
35 | // --------------------------------------------------------------------------- | ||
36 | |||
37 | function checkSort (req, res, next, sortableColumns) { | ||
25 | req.checkQuery('sort', 'Should have correct sortable column').optional().isIn(sortableColumns) | 38 | req.checkQuery('sort', 'Should have correct sortable column').optional().isIn(sortableColumns) |
26 | 39 | ||
27 | logger.debug('Checking sort parameters', { parameters: req.query }) | 40 | logger.debug('Checking sort parameters', { parameters: req.query }) |
28 | 41 | ||
29 | checkErrors(req, res, next) | 42 | checkErrors(req, res, next) |
30 | } | 43 | } |
31 | |||
32 | // --------------------------------------------------------------------------- | ||
33 | |||
34 | module.exports = validatorsSort | ||
diff --git a/server/middlewares/validators/videos.js b/server/middlewares/validators/videos.js index 295ed05fa..ff18a99c2 100644 --- a/server/middlewares/validators/videos.js +++ b/server/middlewares/validators/videos.js | |||
@@ -11,7 +11,9 @@ const validatorsVideos = { | |||
11 | videosUpdate, | 11 | videosUpdate, |
12 | videosGet, | 12 | videosGet, |
13 | videosRemove, | 13 | videosRemove, |
14 | videosSearch | 14 | videosSearch, |
15 | |||
16 | videoAbuseReport | ||
15 | } | 17 | } |
16 | 18 | ||
17 | function videosAdd (req, res, next) { | 19 | function videosAdd (req, res, next) { |
@@ -97,6 +99,17 @@ function videosSearch (req, res, next) { | |||
97 | checkErrors(req, res, next) | 99 | checkErrors(req, res, next) |
98 | } | 100 | } |
99 | 101 | ||
102 | function videoAbuseReport (req, res, next) { | ||
103 | req.checkParams('id', 'Should have a valid id').notEmpty().isUUID(4) | ||
104 | req.checkBody('reason', 'Should have a valid reason').isVideoAbuseReasonValid() | ||
105 | |||
106 | logger.debug('Checking videoAbuseReport parameters', { parameters: req.body }) | ||
107 | |||
108 | checkErrors(req, res, function () { | ||
109 | checkVideoExists(req.params.id, res, next) | ||
110 | }) | ||
111 | } | ||
112 | |||
100 | // --------------------------------------------------------------------------- | 113 | // --------------------------------------------------------------------------- |
101 | 114 | ||
102 | module.exports = validatorsVideos | 115 | module.exports = validatorsVideos |