X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2Fvideos%2Fshared%2Fvideo.model.ts;h=0cf4039df312b5f33a1d354710af7d50747db2a5;hb=8635a2c70cc24a4c52558162ac058de95750271f;hp=404e3bf45fea496ac0ca3e29dac42190085a3e9a;hpb=d8e689b864749648d03cf4391fd4a475126f01cd;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/shared/video.model.ts b/client/src/app/videos/shared/video.model.ts index 404e3bf45..0cf4039df 100644 --- a/client/src/app/videos/shared/video.model.ts +++ b/client/src/app/videos/shared/video.model.ts @@ -1,17 +1,19 @@ +import { Video as VideoServerModel } from '../../../../../shared'; import { User } from '../../shared'; -export class Video { +export class Video implements VideoServerModel { author: string; by: string; createdAt: Date; categoryLabel: string; - category: string; + category: number; licenceLabel: string; - licence: string; + licence: number; languageLabel: string; - language: string; + language: number; description: string; - duration: string; + duration: number; + durationLabel: string; id: string; isLocal: boolean; magnetUri: string; @@ -41,11 +43,11 @@ export class Video { author: string, createdAt: string, categoryLabel: string, - category: string, + category: number, licenceLabel: string, - licence: string, + licence: number, languageLabel: string; - language: string; + language: number; description: string, duration: number; id: string, @@ -69,7 +71,8 @@ export class Video { this.languageLabel = hash.languageLabel; this.language = hash.language; this.description = hash.description; - this.duration = Video.createDurationString(hash.duration); + this.duration = hash.duration; + this.durationLabel = Video.createDurationString(hash.duration); this.id = hash.id; this.isLocal = hash.isLocal; this.magnetUri = hash.magnetUri; @@ -85,8 +88,16 @@ export class Video { this.by = Video.createByString(hash.author, hash.podHost); } - isRemovableBy(user: User) { - return this.isLocal === true && user && this.author === user.username; + isRemovableBy(user) { + return user && this.isLocal === true && (this.author === user.username || user.isAdmin() === true); + } + + isBlackistableBy(user) { + return user && user.isAdmin() === true && this.isLocal === false; + } + + isUpdatableBy(user) { + return user && this.isLocal === true && user.username === this.author; } isVideoNSFWForUser(user: User) {