diff options
author | Wicklow <123956049+wickloww@users.noreply.github.com> | 2023-06-29 07:48:55 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-29 09:48:55 +0200 |
commit | 40346ead2b0b7afa475aef057d3673b6c7574b7a (patch) | |
tree | 24ffdc23c3a9d987334842e0d400b5bd44500cf7 /shared/models | |
parent | ae22c59f14d0d553f60b281948b6c232c2aca178 (diff) | |
download | PeerTube-40346ead2b0b7afa475aef057d3673b6c7574b7a.tar.gz PeerTube-40346ead2b0b7afa475aef057d3673b6c7574b7a.tar.zst PeerTube-40346ead2b0b7afa475aef057d3673b6c7574b7a.zip |
Feature/password protected videos (#5836)
* Add server endpoints
* Refactoring test suites
* Update server and add openapi documentation
* fix compliation and tests
* upload/import password protected video on client
* add server error code
* Add video password to update resolver
* add custom message when sharing pw protected video
* improve confirm component
* Add new alert in component
* Add ability to watch protected video on client
* Cannot have password protected replay privacy
* Add migration
* Add tests
* update after review
* Update check params tests
* Add live videos test
* Add more filter test
* Update static file privacy test
* Update object storage tests
* Add test on feeds
* Add missing word
* Fix tests
* Fix tests on live videos
* add embed support on password protected videos
* fix style
* Correcting data leaks
* Unable to add password protected privacy on replay
* Updated code based on review comments
* fix validator and command
* Updated code based on review comments
Diffstat (limited to 'shared/models')
-rw-r--r-- | shared/models/server/server-error-code.enum.ts | 5 | ||||
-rw-r--r-- | shared/models/videos/index.ts | 1 | ||||
-rw-r--r-- | shared/models/videos/video-create.model.ts | 1 | ||||
-rw-r--r-- | shared/models/videos/video-password.model.ts | 7 | ||||
-rw-r--r-- | shared/models/videos/video-privacy.enum.ts | 3 | ||||
-rw-r--r-- | shared/models/videos/video-update.model.ts | 1 |
6 files changed, 16 insertions, 2 deletions
diff --git a/shared/models/server/server-error-code.enum.ts b/shared/models/server/server-error-code.enum.ts index 2b093380c..77d1e1d3f 100644 --- a/shared/models/server/server-error-code.enum.ts +++ b/shared/models/server/server-error-code.enum.ts | |||
@@ -49,7 +49,10 @@ export const enum ServerErrorCode { | |||
49 | 49 | ||
50 | RUNNER_JOB_NOT_IN_PROCESSING_STATE = 'runner_job_not_in_processing_state', | 50 | RUNNER_JOB_NOT_IN_PROCESSING_STATE = 'runner_job_not_in_processing_state', |
51 | RUNNER_JOB_NOT_IN_PENDING_STATE = 'runner_job_not_in_pending_state', | 51 | RUNNER_JOB_NOT_IN_PENDING_STATE = 'runner_job_not_in_pending_state', |
52 | UNKNOWN_RUNNER_TOKEN = 'unknown_runner_token' | 52 | UNKNOWN_RUNNER_TOKEN = 'unknown_runner_token', |
53 | |||
54 | VIDEO_REQUIRES_PASSWORD = 'video_requires_password', | ||
55 | INCORRECT_VIDEO_PASSWORD = 'incorrect_video_password' | ||
53 | } | 56 | } |
54 | 57 | ||
55 | /** | 58 | /** |
diff --git a/shared/models/videos/index.ts b/shared/models/videos/index.ts index 4c1790228..80be1854b 100644 --- a/shared/models/videos/index.ts +++ b/shared/models/videos/index.ts | |||
@@ -39,3 +39,4 @@ export * from './video-update.model' | |||
39 | export * from './video-view.model' | 39 | export * from './video-view.model' |
40 | export * from './video.model' | 40 | export * from './video.model' |
41 | export * from './video-create-result.model' | 41 | export * from './video-create-result.model' |
42 | export * from './video-password.model' | ||
diff --git a/shared/models/videos/video-create.model.ts b/shared/models/videos/video-create.model.ts index 732d508d1..7a34b5afe 100644 --- a/shared/models/videos/video-create.model.ts +++ b/shared/models/videos/video-create.model.ts | |||
@@ -18,6 +18,7 @@ export interface VideoCreate { | |||
18 | privacy: VideoPrivacy | 18 | privacy: VideoPrivacy |
19 | scheduleUpdate?: VideoScheduleUpdate | 19 | scheduleUpdate?: VideoScheduleUpdate |
20 | originallyPublishedAt?: Date | string | 20 | originallyPublishedAt?: Date | string |
21 | videoPasswords?: string[] | ||
21 | 22 | ||
22 | thumbnailfile?: Blob | string | 23 | thumbnailfile?: Blob | string |
23 | previewfile?: Blob | string | 24 | previewfile?: Blob | string |
diff --git a/shared/models/videos/video-password.model.ts b/shared/models/videos/video-password.model.ts new file mode 100644 index 000000000..c0280b9b9 --- /dev/null +++ b/shared/models/videos/video-password.model.ts | |||
@@ -0,0 +1,7 @@ | |||
1 | export interface VideoPassword { | ||
2 | id: number | ||
3 | password: string | ||
4 | videoId: number | ||
5 | createdAt: Date | string | ||
6 | updatedAt: Date | string | ||
7 | } | ||
diff --git a/shared/models/videos/video-privacy.enum.ts b/shared/models/videos/video-privacy.enum.ts index 39fd0529f..12e1d196f 100644 --- a/shared/models/videos/video-privacy.enum.ts +++ b/shared/models/videos/video-privacy.enum.ts | |||
@@ -2,5 +2,6 @@ export const enum VideoPrivacy { | |||
2 | PUBLIC = 1, | 2 | PUBLIC = 1, |
3 | UNLISTED = 2, | 3 | UNLISTED = 2, |
4 | PRIVATE = 3, | 4 | PRIVATE = 3, |
5 | INTERNAL = 4 | 5 | INTERNAL = 4, |
6 | PASSWORD_PROTECTED = 5 | ||
6 | } | 7 | } |
diff --git a/shared/models/videos/video-update.model.ts b/shared/models/videos/video-update.model.ts index 86653b959..43537b5af 100644 --- a/shared/models/videos/video-update.model.ts +++ b/shared/models/videos/video-update.model.ts | |||
@@ -19,6 +19,7 @@ export interface VideoUpdate { | |||
19 | previewfile?: Blob | 19 | previewfile?: Blob |
20 | scheduleUpdate?: VideoScheduleUpdate | 20 | scheduleUpdate?: VideoScheduleUpdate |
21 | originallyPublishedAt?: Date | string | 21 | originallyPublishedAt?: Date | string |
22 | videoPasswords?: string[] | ||
22 | 23 | ||
23 | pluginData?: any | 24 | pluginData?: any |
24 | } | 25 | } |