From 3cabf3532b9118a19311f14ca3e171d12d554a2f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 6 Nov 2020 13:59:50 +0100 Subject: Add live server hooks --- server/middlewares/validators/videos/video-live.ts | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'server/middlewares/validators/videos/video-live.ts') diff --git a/server/middlewares/validators/videos/video-live.ts b/server/middlewares/validators/videos/video-live.ts index cbc48fe93..ff92db910 100644 --- a/server/middlewares/validators/videos/video-live.ts +++ b/server/middlewares/validators/videos/video-live.ts @@ -11,6 +11,8 @@ import { CONFIG } from '../../../initializers/config' import { areValidationErrors } from '../utils' import { getCommonVideoEditAttributes } from './videos' import { VideoModel } from '@server/models/video/video' +import { Hooks } from '@server/lib/plugins/hooks' +import { isLocalLiveVideoAccepted } from '@server/lib/moderation' const videoLiveGetValidator = [ param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'), @@ -97,6 +99,8 @@ const videoLiveAddValidator = getCommonVideoEditAttributes().concat([ } } + if (!await isLiveVideoAccepted(req, res)) return cleanUpReqFiles(req) + return next() } ]) @@ -137,3 +141,29 @@ export { videoLiveUpdateValidator, videoLiveGetValidator } + +// --------------------------------------------------------------------------- + +async function isLiveVideoAccepted (req: express.Request, res: express.Response) { + // Check we accept this video + const acceptParameters = { + liveVideoBody: req.body, + user: res.locals.oauth.token.User + } + const acceptedResult = await Hooks.wrapFun( + isLocalLiveVideoAccepted, + acceptParameters, + 'filter:api.live-video.create.accept.result' + ) + + if (!acceptedResult || acceptedResult.accepted !== true) { + logger.info('Refused local live video.', { acceptedResult, acceptParameters }) + + res.status(403) + .json({ error: acceptedResult.errorMessage || 'Refused local live video' }) + + return false + } + + return true +} -- cgit v1.2.3