]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/custom-validators/videos.ts
Merge branch 'release/2.1.0' into develop
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / videos.ts
index dd04aa5f65c4346aac6fa04d44efd2d72bb9d37b..cfb430c638485034a23dd0bdf1a2a4989a65ebac 100644 (file)
@@ -1,23 +1,17 @@
-import { Response } from 'express'
-import 'express-validator'
 import { values } from 'lodash'
-import 'multer'
-import * as validator from 'validator'
-import { UserRight, VideoFilter, VideoPrivacy, VideoRateType } from '../../../shared'
+import validator from 'validator'
+import { VideoFilter, VideoPrivacy, VideoRateType } from '../../../shared'
 import {
-  CONSTRAINTS_FIELDS, MIMETYPES,
+  CONSTRAINTS_FIELDS,
+  MIMETYPES,
   VIDEO_CATEGORIES,
   VIDEO_LICENCES,
   VIDEO_PRIVACIES,
   VIDEO_RATE_TYPES,
   VIDEO_STATES
-} from '../../initializers'
-import { VideoModel } from '../../models/video/video'
+} from '../../initializers/constants'
 import { exists, isArray, isDateValid, isFileValid } from './misc'
-import { VideoChannelModel } from '../../models/video/video-channel'
-import { UserModel } from '../../models/account/user'
 import * as magnetUtil from 'magnet-uri'
-import { fetchVideo, VideoFetchType } from '../video'
 
 const VIDEOS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEOS
 
@@ -26,15 +20,15 @@ function isVideoFilterValid (filter: VideoFilter) {
 }
 
 function isVideoCategoryValid (value: any) {
-  return value === null || VIDEO_CATEGORIES[ value ] !== undefined
+  return value === null || VIDEO_CATEGORIES[value] !== undefined
 }
 
 function isVideoStateValid (value: any) {
-  return exists(value) && VIDEO_STATES[ value ] !== undefined
+  return exists(value) && VIDEO_STATES[value] !== undefined
 }
 
 function isVideoLicenceValid (value: any) {
-  return value === null || VIDEO_LICENCES[ value ] !== undefined
+  return value === null || VIDEO_LICENCES[value] !== undefined
 }
 
 function isVideoLanguageValid (value: any) {
@@ -104,15 +98,11 @@ function isVideoImage (files: { [ fieldname: string ]: Express.Multer.File[] } |
 }
 
 function isVideoPrivacyValid (value: number) {
-  return validator.isInt(value + '') && VIDEO_PRIVACIES[ value ] !== undefined
+  return VIDEO_PRIVACIES[value] !== undefined
 }
 
 function isScheduleVideoUpdatePrivacyValid (value: number) {
-  return validator.isInt(value + '') &&
-    (
-      value === VideoPrivacy.UNLISTED ||
-      value === VideoPrivacy.PUBLIC
-    )
+  return value === VideoPrivacy.UNLISTED || value === VideoPrivacy.PUBLIC || value === VideoPrivacy.INTERNAL
 }
 
 function isVideoOriginallyPublishedAtValid (value: string | null) {
@@ -142,79 +132,10 @@ function isVideoMagnetUriValid (value: string) {
   return parsed && isVideoFileInfoHashValid(parsed.infoHash)
 }
 
-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, fetchType: VideoFetchType = 'all') {
-  const userId = res.locals.oauth ? res.locals.oauth.token.User.id : undefined
-
-  const video = await fetchVideo(id, fetchType, userId)
-
-  if (video === null) {
-    res.status(404)
-       .json({ error: 'Video not found' })
-       .end()
-
-    return false
-  }
-
-  if (fetchType !== 'none') res.locals.video = video
-  return true
-}
-
-async function isVideoChannelOfAccountExist (channelId: number, user: UserModel, res: Response) {
-  if (user.hasRight(UserRight.UPDATE_ANY_VIDEO) === true) {
-    const videoChannel = await VideoChannelModel.loadAndPopulateAccount(channelId)
-    if (videoChannel === null) {
-      res.status(400)
-         .json({ error: 'Unknown video `video channel` on this instance.' })
-         .end()
-
-      return false
-    }
-
-    res.locals.videoChannel = videoChannel
-    return true
-  }
-
-  const videoChannel = await VideoChannelModel.loadByIdAndAccount(channelId, user.Account.id)
-  if (videoChannel === null) {
-    res.status(400)
-       .json({ error: 'Unknown video `video channel` for this account.' })
-       .end()
-
-    return false
-  }
-
-  res.locals.videoChannel = videoChannel
-  return true
-}
-
 // ---------------------------------------------------------------------------
 
 export {
   isVideoCategoryValid,
-  checkUserCanManageVideo,
   isVideoLicenceValid,
   isVideoLanguageValid,
   isVideoTruncatedDescriptionValid,
@@ -236,9 +157,7 @@ export {
   isVideoPrivacyValid,
   isVideoFileResolutionValid,
   isVideoFileSizeValid,
-  isVideoExist,
   isVideoImage,
-  isVideoChannelOfAccountExist,
   isVideoSupportValid,
   isVideoFilterValid
 }