Fix playlist get for classic users
authorChocobozzz <me@florianbigard.com>
Tue, 28 May 2019 07:50:27 +0000 (09:50 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 28 May 2019 07:50:27 +0000 (09:50 +0200)
server/middlewares/validators/videos/video-playlists.ts
server/tests/api/videos/video-playlists.ts

index 2c3f7e542c36fc0e8643fa74ae9afc0941878bc1..f68eeeeb3239b200e6c2cffad73aec21167fb687 100644 (file)
@@ -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.' })
index e4d817ff8b3784f03fac6b70752b78c757a7e7ef..fd5e4c4be03b5932dcdffab11d1f27000ffbac42 100644 (file)
@@ -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)