X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2Fshared%2Fusers%2Fuser.model.ts;h=b075ab717b60a61ad1e80b81eb72d3cd74995a6b;hb=1e1265b36c09df1465aa2b4866815c957b6a532e;hp=0f34d4480faf4e176b5927b2d3269a6aee840200;hpb=7da18e4420c4b71a8ecfda07f39324fbfec081c3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/users/user.model.ts b/client/src/app/shared/users/user.model.ts index 0f34d4480..b075ab717 100644 --- a/client/src/app/shared/users/user.model.ts +++ b/client/src/app/shared/users/user.model.ts @@ -1,15 +1,64 @@ -export class User { - id: string; - username: string; - role: string; - - constructor(hash: { id: string, username: string, role: string }) { - this.id = hash.id; - this.username = hash.username; - this.role = hash.role; +import { + User as UserServerModel, + UserRole, + VideoChannel, + UserRight, + hasUserRight +} from '../../../../../shared' + +export type UserConstructorHash = { + id: number, + username: string, + email: string, + role: UserRole, + videoQuota?: number, + displayNSFW?: boolean, + createdAt?: Date, + account?: { + id: number + uuid: string + }, + videoChannels?: VideoChannel[] +} +export class User implements UserServerModel { + id: number + username: string + email: string + role: UserRole + displayNSFW: boolean + videoQuota: number + account: { + id: number + uuid: string + } + videoChannels: VideoChannel[] + createdAt: Date + + constructor (hash: UserConstructorHash) { + this.id = hash.id + this.username = hash.username + this.email = hash.email + this.role = hash.role + this.account = hash.account + + if (hash.videoChannels !== undefined) { + this.videoChannels = hash.videoChannels + } + + if (hash.videoQuota !== undefined) { + this.videoQuota = hash.videoQuota + } + + if (hash.displayNSFW !== undefined) { + this.displayNSFW = hash.displayNSFW + } + + if (hash.createdAt !== undefined) { + this.createdAt = hash.createdAt + } } - isAdmin() { - return this.role === 'admin'; + hasRight (right: UserRight) { + return hasUserRight(this.role, right) } }