aboutsummaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/lib/emailer.ts2
-rw-r--r--server/tests/api/check-params/video-blacklist.ts59
2 files changed, 50 insertions, 11 deletions
diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts
index a1212878f..c8398c9e7 100644
--- a/server/lib/emailer.ts
+++ b/server/lib/emailer.ts
@@ -138,6 +138,8 @@ class Emailer {
138 async addVideoUnblacklistReportJob (videoId: number) { 138 async addVideoUnblacklistReportJob (videoId: number) {
139 const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId) 139 const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId)
140 if (!video) throw new Error('Unknown Video id during Blacklist report.') 140 if (!video) throw new Error('Unknown Video id during Blacklist report.')
141 // It's not our user
142 if (video.remote === true) return
141 143
142 const user = await UserModel.loadById(video.VideoChannel.Account.userId) 144 const user = await UserModel.loadById(video.VideoChannel.Account.userId)
143 145
diff --git a/server/tests/api/check-params/video-blacklist.ts b/server/tests/api/check-params/video-blacklist.ts
index 415474718..473216236 100644
--- a/server/tests/api/check-params/video-blacklist.ts
+++ b/server/tests/api/check-params/video-blacklist.ts
@@ -5,7 +5,7 @@ import 'mocha'
5import { 5import {
6 createUser, 6 createUser,
7 flushTests, 7 flushTests,
8 getBlacklistedVideosList, 8 getBlacklistedVideosList, getVideo, getVideoWithToken,
9 killallServers, 9 killallServers,
10 makePostBodyRequest, 10 makePostBodyRequest,
11 makePutBodyRequest, 11 makePutBodyRequest,
@@ -17,11 +17,14 @@ import {
17 userLogin 17 userLogin
18} from '../../utils' 18} from '../../utils'
19import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params' 19import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params'
20import { VideoDetails } from '../../../../shared/models/videos'
21import { expect } from 'chai'
20 22
21describe('Test video blacklist API validators', function () { 23describe('Test video blacklist API validators', function () {
22 let server: ServerInfo 24 let server: ServerInfo
23 let notBlacklistedVideoId: number 25 let notBlacklistedVideoId: number
24 let userAccessToken = '' 26 let userAccessToken1 = ''
27 let userAccessToken2 = ''
25 28
26 // --------------------------------------------------------------- 29 // ---------------------------------------------------------------
27 30
@@ -34,13 +37,22 @@ describe('Test video blacklist API validators', function () {
34 37
35 await setAccessTokensToServers([ server ]) 38 await setAccessTokensToServers([ server ])
36 39
37 const username = 'user1' 40 {
38 const password = 'my super password' 41 const username = 'user1'
39 await createUser(server.url, server.accessToken, username, password) 42 const password = 'my super password'
40 userAccessToken = await userLogin(server, { username, password }) 43 await createUser(server.url, server.accessToken, username, password)
44 userAccessToken1 = await userLogin(server, { username, password })
45 }
41 46
42 { 47 {
43 const res = await uploadVideo(server.url, server.accessToken, {}) 48 const username = 'user2'
49 const password = 'my super password'
50 await createUser(server.url, server.accessToken, username, password)
51 userAccessToken2 = await userLogin(server, { username, password })
52 }
53
54 {
55 const res = await uploadVideo(server.url, userAccessToken1, {})
44 server.video = res.body.video 56 server.video = res.body.video
45 } 57 }
46 58
@@ -74,7 +86,7 @@ describe('Test video blacklist API validators', function () {
74 it('Should fail with a non admin user', async function () { 86 it('Should fail with a non admin user', async function () {
75 const path = basePath + server.video + '/blacklist' 87 const path = basePath + server.video + '/blacklist'
76 const fields = {} 88 const fields = {}
77 await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields, statusCodeExpected: 403 }) 89 await makePostBodyRequest({ url: server.url, path, token: userAccessToken2, fields, statusCodeExpected: 403 })
78 }) 90 })
79 91
80 it('Should fail with an invalid reason', async function () { 92 it('Should fail with an invalid reason', async function () {
@@ -116,7 +128,7 @@ describe('Test video blacklist API validators', function () {
116 it('Should fail with a non admin user', async function () { 128 it('Should fail with a non admin user', async function () {
117 const path = basePath + server.video + '/blacklist' 129 const path = basePath + server.video + '/blacklist'
118 const fields = {} 130 const fields = {}
119 await makePutBodyRequest({ url: server.url, path, token: userAccessToken, fields, statusCodeExpected: 403 }) 131 await makePutBodyRequest({ url: server.url, path, token: userAccessToken2, fields, statusCodeExpected: 403 })
120 }) 132 })
121 133
122 it('Should fail with an invalid reason', async function () { 134 it('Should fail with an invalid reason', async function () {
@@ -134,13 +146,38 @@ describe('Test video blacklist API validators', function () {
134 }) 146 })
135 }) 147 })
136 148
149 describe('When getting blacklisted video', function () {
150
151 it('Should fail with a non authenticated user', async function () {
152 await getVideo(server.url, server.video.uuid, 401)
153 })
154
155 it('Should fail with another user', async function () {
156 await getVideoWithToken(server.url, userAccessToken2, server.video.uuid, 403)
157 })
158
159 it('Should succeed with the owner authenticated user', async function () {
160 const res = await getVideoWithToken(server.url, userAccessToken1, server.video.uuid, 200)
161 const video: VideoDetails = res.body
162
163 expect(video.blacklisted).to.be.true
164 })
165
166 it('Should succeed with an admin', async function () {
167 const res = await getVideoWithToken(server.url, server.accessToken, server.video.uuid, 200)
168 const video: VideoDetails = res.body
169
170 expect(video.blacklisted).to.be.true
171 })
172 })
173
137 describe('When removing a video in blacklist', function () { 174 describe('When removing a video in blacklist', function () {
138 it('Should fail with a non authenticated user', async function () { 175 it('Should fail with a non authenticated user', async function () {
139 await removeVideoFromBlacklist(server.url, 'fake token', server.video.uuid, 401) 176 await removeVideoFromBlacklist(server.url, 'fake token', server.video.uuid, 401)
140 }) 177 })
141 178
142 it('Should fail with a non admin user', async function () { 179 it('Should fail with a non admin user', async function () {
143 await removeVideoFromBlacklist(server.url, userAccessToken, server.video.uuid, 403) 180 await removeVideoFromBlacklist(server.url, userAccessToken2, server.video.uuid, 403)
144 }) 181 })
145 182
146 it('Should fail with an incorrect id', async function () { 183 it('Should fail with an incorrect id', async function () {
@@ -165,7 +202,7 @@ describe('Test video blacklist API validators', function () {
165 }) 202 })
166 203
167 it('Should fail with a non admin user', async function () { 204 it('Should fail with a non admin user', async function () {
168 await getBlacklistedVideosList(server.url, userAccessToken, 403) 205 await getBlacklistedVideosList(server.url, userAccessToken2, 403)
169 }) 206 })
170 207
171 it('Should fail with a bad start pagination', async function () { 208 it('Should fail with a bad start pagination', async function () {