X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fshared%2Fvideos.ts;h=0033a32ff1af454f6a7794ce3403e49965b5526a;hb=8ca52bcc2c37d457e8b19a237c66b8dd1c00b6b9;hp=c29751eca875b4047c3a79b8f9ecb81d224dd8ef;hpb=3545e72c686ff1725bbdfd8d16d693e2f4aa75a3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/shared/videos.ts b/server/middlewares/validators/shared/videos.ts index c29751eca..0033a32ff 100644 --- a/server/middlewares/validators/shared/videos.ts +++ b/server/middlewares/validators/shared/videos.ts @@ -111,7 +111,7 @@ async function checkCanSeeVideo (options: { }) { const { req, res, video, paramId } = options - if (video.requiresAuth(paramId)) { + if (video.requiresAuth({ urlParamId: paramId, checkBlacklist: true })) { return checkCanSeeAuthVideo(req, res, video) } @@ -174,24 +174,22 @@ async function checkCanAccessVideoStaticFiles (options: { res: Response paramId: string }) { - const { video, req, res, paramId } = options + const { video, req, res } = options if (res.locals.oauth?.token.User) { return checkCanSeeVideo(options) } - if (!video.requiresAuth(paramId)) return true - const videoFileToken = req.query.videoFileToken - if (!videoFileToken) { - res.sendStatus(HttpStatusCode.FORBIDDEN_403) - return false - } + if (videoFileToken && VideoTokensManager.Instance.hasToken({ token: videoFileToken, videoUUID: video.uuid })) { + const user = VideoTokensManager.Instance.getUserFromToken({ token: videoFileToken }) - if (VideoTokensManager.Instance.hasToken({ token: videoFileToken, videoUUID: video.uuid })) { + res.locals.videoFileToken = { user } return true } + if (!video.hasPrivateStaticPath()) return true + res.sendStatus(HttpStatusCode.FORBIDDEN_403) return false }