X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fmodels%2Fvideo%2Fvideo.ts;h=f9618c102fbdcd9450ba1bbd117c7586c0aee9fd;hb=3c10840fa90fc88fc98e8169faf4745ff6c80893;hp=26be34329e4969d02c91c379008a4d2903a518b5;hpb=2760b454a761f6af3138b2fb5f34340772ab0d1e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 26be34329..f9618c102 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts @@ -105,7 +105,7 @@ import { videoModelToFormattedJSON } from './formatter/video-format-utils' import { ScheduleVideoUpdateModel } from './schedule-video-update' -import { VideosModelGetQueryBuilder } from './sql/video-model-get-query-builder' +import { VideoModelGetQueryBuilder } from './sql/video-model-get-query-builder' import { BuildVideosListQueryOptions, DisplayOnlyForFollowerOptions, VideosIdListQueryBuilder } from './sql/videos-id-list-query-builder' import { VideosModelListQueryBuilder } from './sql/videos-model-list-query-builder' import { TagModel } from './tag' @@ -1029,7 +1029,7 @@ export class VideoModel extends Model>> { isLocal?: boolean include?: VideoInclude - withFiles: boolean + hasFiles?: boolean // default false categoryOneOf?: number[] licenceOneOf?: number[] @@ -1053,7 +1053,7 @@ export class VideoModel extends Model>> { search?: string }) { - if (options.include && !options.user.hasRight(UserRight.SEE_ALL_VIDEOS)) { + if (VideoModel.isPrivateInclude(options.include) && !options.user.hasRight(UserRight.SEE_ALL_VIDEOS)) { throw new Error('Try to filter all-local but no user has not the see all videos right') } @@ -1082,7 +1082,7 @@ export class VideoModel extends Model>> { 'isLocal', 'include', 'displayOnlyForFollower', - 'withFiles', + 'hasFiles', 'accountId', 'videoChannelId', 'videoPlaylistId', @@ -1229,13 +1229,13 @@ export class VideoModel extends Model>> { } static load (id: number | string, transaction?: Transaction): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ id, transaction, type: 'thumbnails' }) } static loadWithBlacklist (id: number | string, transaction?: Transaction): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ id, transaction, type: 'thumbnails-blacklist' }) } @@ -1279,31 +1279,31 @@ export class VideoModel extends Model>> { } static loadOnlyId (id: number | string, transaction?: Transaction): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ id, transaction, type: 'id' }) } static loadWithFiles (id: number | string, transaction?: Transaction, logging?: boolean): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ id, transaction, type: 'all-files', logging }) } static loadByUrl (url: string, transaction?: Transaction): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ url, transaction, type: 'thumbnails' }) } static loadByUrlAndPopulateAccount (url: string, transaction?: Transaction): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ url, transaction, type: 'account-blacklist-files' }) } static loadAndPopulateAccountAndServerAndTags (id: number | string, t?: Transaction, userId?: number): Promise { - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ id, transaction: t, type: 'full-light', userId }) } @@ -1314,7 +1314,7 @@ export class VideoModel extends Model>> { userId?: number }): Promise { const { id, transaction, userId } = parameters - const queryBuilder = new VideosModelGetQueryBuilder(VideoModel.sequelize) + const queryBuilder = new VideoModelGetQueryBuilder(VideoModel.sequelize) return queryBuilder.queryVideo({ id, transaction, type: 'api', userId }) } @@ -1345,8 +1345,7 @@ export class VideoModel extends Model>> { displayOnlyForFollower: { actorId: serverActor.id, orLocalVideos: true - }, - withFiles: false + } }) return { @@ -1490,6 +1489,13 @@ export class VideoModel extends Model>> { } } + private static isPrivateInclude (include: VideoInclude) { + return include & VideoInclude.BLACKLISTED || + include & VideoInclude.BLOCKED_OWNER || + include & VideoInclude.HIDDEN_PRIVACY || + include & VideoInclude.NOT_PUBLISHED_STATE + } + isBlacklisted () { return !!this.VideoBlacklist }