X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fvideos.ts;h=b5cb126d9d3367984623937fb2befe1eef9b5c76;hb=f4001cf408a99049d01a356bfb20a62342de06ea;hp=ae392f8c2561c37d8f04b980f4a8962c17559c66;hpb=0c237b19fdf9c614293c1442f0ab95a81ce05735;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/videos.ts b/server/helpers/custom-validators/videos.ts index ae392f8c2..b5cb126d9 100644 --- a/server/helpers/custom-validators/videos.ts +++ b/server/helpers/custom-validators/videos.ts @@ -118,10 +118,37 @@ function isVideoFileResolutionValid (value: string) { return exists(value) && validator.isInt(value + '') } +function isVideoFPSResolutionValid (value: string) { + return value === null || validator.isInt(value + '') +} + function isVideoFileSizeValid (value: string) { return exists(value) && validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.FILE_SIZE) } +function checkUserCanManageVideo (user: UserModel, video: VideoModel, right: UserRight, res: Response) { + // Retrieve the user who did the request + if (video.isOwned() === false) { + res.status(403) + .json({ error: 'Cannot manage a video of another server.' }) + .end() + return false + } + + // Check if the user can delete the video + // The user can delete it if he has the right + // Or if s/he is the video's account + const account = video.VideoChannel.Account + if (user.hasRight(right) === false && account.userId !== user.id) { + res.status(403) + .json({ error: 'Cannot manage a video of another user.' }) + .end() + return false + } + + return true +} + async function isVideoExist (id: string, res: Response) { let video: VideoModel @@ -175,6 +202,7 @@ async function isVideoChannelOfAccountExist (channelId: number, user: UserModel, export { isVideoCategoryValid, + checkUserCanManageVideo, isVideoLicenceValid, isVideoLanguageValid, isVideoTruncatedDescriptionValid, @@ -182,6 +210,7 @@ export { isVideoFileInfoHashValid, isVideoNameValid, isVideoTagsValid, + isVideoFPSResolutionValid, isScheduleVideoUpdatePrivacyValid, isVideoAbuseReasonValid, isVideoFile,