From: Chocobozzz Date: Tue, 28 May 2019 07:50:27 +0000 (+0200) Subject: Fix playlist get for classic users X-Git-Tag: v1.4.0-rc.1~209 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=4d09cfba7820544e72f04bf83c680bc24b775358;p=github%2FChocobozzz%2FPeerTube.git Fix playlist get for classic users --- diff --git a/server/middlewares/validators/videos/video-playlists.ts b/server/middlewares/validators/videos/video-playlists.ts index 2c3f7e542..f68eeeeb3 100644 --- a/server/middlewares/validators/videos/video-playlists.ts +++ b/server/middlewares/validators/videos/video-playlists.ts @@ -140,9 +140,10 @@ const videoPlaylistsGetValidator = [ await authenticatePromiseIfNeeded(req, res) const user = res.locals.oauth ? res.locals.oauth.token.User : null + if ( !user || - (videoPlaylist.OwnerAccount.userId !== user.id && !user.hasRight(UserRight.UPDATE_ANY_VIDEO_PLAYLIST)) + (videoPlaylist.OwnerAccount.id !== user.Account.id && !user.hasRight(UserRight.UPDATE_ANY_VIDEO_PLAYLIST)) ) { return res.status(403) .json({ error: 'Cannot get this private video playlist.' }) diff --git a/server/tests/api/videos/video-playlists.ts b/server/tests/api/videos/video-playlists.ts index 83a2f3d4d..3ebb1df0b 100644 --- a/server/tests/api/videos/video-playlists.ts +++ b/server/tests/api/videos/video-playlists.ts @@ -36,7 +36,8 @@ import { uploadVideo, uploadVideoAndGetId, userLogin, - waitJobs + waitJobs, + generateUserAccessToken } from '../../../../shared/extra-utils' import { VideoPlaylistPrivacy } from '../../../../shared/models/videos/playlist/video-playlist-privacy.model' import { VideoPlaylist } from '../../../../shared/models/videos/playlist/video-playlist.model' @@ -138,6 +139,18 @@ describe('Test video playlists', function () { } }) + it('Should get private playlist for a classic user', async function () { + const token = await generateUserAccessToken(servers[0], 'toto') + + const res = await getAccountPlaylistsListWithToken(servers[0].url, token, 'toto', 0, 5) + + expect(res.body.total).to.equal(1) + expect(res.body.data).to.have.lengthOf(1) + + const playlistId = res.body.data[0].id + await getPlaylistVideos(servers[0].url, token, playlistId, 0, 5) + }) + it('Should create a playlist on server 1 and have the playlist on server 2 and 3', async function () { this.timeout(30000)