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/helpers/custom-validators/videos.js | |
parent | a6fd2b30bf717eec14972a2175354781f5f43e77 (diff) | |
download | PeerTube-55fa55a9be566cca2ba95322f2ae23b434aed62a.tar.gz PeerTube-55fa55a9be566cca2ba95322f2ae23b434aed62a.tar.zst PeerTube-55fa55a9be566cca2ba95322f2ae23b434aed62a.zip |
Server: add video abuse support
Diffstat (limited to 'server/helpers/custom-validators/videos.js')
-rw-r--r-- | server/helpers/custom-validators/videos.js | 66 |
1 files changed, 13 insertions, 53 deletions
diff --git a/server/helpers/custom-validators/videos.js b/server/helpers/custom-validators/videos.js index 8448386d9..7f727854d 100644 --- a/server/helpers/custom-validators/videos.js +++ b/server/helpers/custom-validators/videos.js | |||
@@ -6,9 +6,9 @@ const constants = require('../../initializers/constants') | |||
6 | const usersValidators = require('./users') | 6 | const usersValidators = require('./users') |
7 | const miscValidators = require('./misc') | 7 | const miscValidators = require('./misc') |
8 | const VIDEOS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEOS | 8 | const VIDEOS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEOS |
9 | const VIDEO_ABUSES_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEO_ABUSES | ||
9 | 10 | ||
10 | const videosValidators = { | 11 | const videosValidators = { |
11 | isEachRemoteVideosValid, | ||
12 | isVideoAuthorValid, | 12 | isVideoAuthorValid, |
13 | isVideoDateValid, | 13 | isVideoDateValid, |
14 | isVideoDescriptionValid, | 14 | isVideoDescriptionValid, |
@@ -17,45 +17,11 @@ const videosValidators = { | |||
17 | isVideoNameValid, | 17 | isVideoNameValid, |
18 | isVideoTagsValid, | 18 | isVideoTagsValid, |
19 | isVideoThumbnailValid, | 19 | isVideoThumbnailValid, |
20 | isVideoThumbnailDataValid | 20 | isVideoThumbnailDataValid, |
21 | } | 21 | isVideoExtnameValid, |
22 | 22 | isVideoRemoteIdValid, | |
23 | function isEachRemoteVideosValid (requests) { | 23 | isVideoAbuseReasonValid, |
24 | return miscValidators.isArray(requests) && | 24 | isVideoAbuseReporterUsernameValid |
25 | requests.every(function (request) { | ||
26 | const video = request.data | ||
27 | return ( | ||
28 | isRequestTypeAddValid(request.type) && | ||
29 | isVideoAuthorValid(video.author) && | ||
30 | isVideoDateValid(video.createdAt) && | ||
31 | isVideoDateValid(video.updatedAt) && | ||
32 | isVideoDescriptionValid(video.description) && | ||
33 | isVideoDurationValid(video.duration) && | ||
34 | isVideoInfoHashValid(video.infoHash) && | ||
35 | isVideoNameValid(video.name) && | ||
36 | isVideoTagsValid(video.tags) && | ||
37 | isVideoThumbnailDataValid(video.thumbnailData) && | ||
38 | isVideoRemoteIdValid(video.remoteId) && | ||
39 | isVideoExtnameValid(video.extname) | ||
40 | ) || | ||
41 | ( | ||
42 | isRequestTypeUpdateValid(request.type) && | ||
43 | isVideoDateValid(video.createdAt) && | ||
44 | isVideoDateValid(video.updatedAt) && | ||
45 | isVideoDescriptionValid(video.description) && | ||
46 | isVideoDurationValid(video.duration) && | ||
47 | isVideoInfoHashValid(video.infoHash) && | ||
48 | isVideoNameValid(video.name) && | ||
49 | isVideoTagsValid(video.tags) && | ||
50 | isVideoRemoteIdValid(video.remoteId) && | ||
51 | isVideoExtnameValid(video.extname) | ||
52 | ) || | ||
53 | ( | ||
54 | isRequestTypeRemoveValid(request.type) && | ||
55 | isVideoNameValid(video.name) && | ||
56 | isVideoRemoteIdValid(video.remoteId) | ||
57 | ) | ||
58 | }) | ||
59 | } | 25 | } |
60 | 26 | ||
61 | function isVideoAuthorValid (value) { | 27 | function isVideoAuthorValid (value) { |
@@ -107,20 +73,14 @@ function isVideoRemoteIdValid (value) { | |||
107 | return validator.isUUID(value, 4) | 73 | return validator.isUUID(value, 4) |
108 | } | 74 | } |
109 | 75 | ||
110 | // --------------------------------------------------------------------------- | 76 | function isVideoAbuseReasonValid (value) { |
111 | 77 | return validator.isLength(value, VIDEO_ABUSES_CONSTRAINTS_FIELDS.REASON) | |
112 | module.exports = videosValidators | ||
113 | |||
114 | // --------------------------------------------------------------------------- | ||
115 | |||
116 | function isRequestTypeAddValid (value) { | ||
117 | return value === 'add' | ||
118 | } | 78 | } |
119 | 79 | ||
120 | function isRequestTypeUpdateValid (value) { | 80 | function isVideoAbuseReporterUsernameValid (value) { |
121 | return value === 'update' | 81 | return usersValidators.isUserUsernameValid(value) |
122 | } | 82 | } |
123 | 83 | ||
124 | function isRequestTypeRemoveValid (value) { | 84 | // --------------------------------------------------------------------------- |
125 | return value === 'remove' | 85 | |
126 | } | 86 | module.exports = videosValidators |