X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fusers%2Fuser.model.ts;h=7c840ffa7054c9109bff031e148a91a18ec988e1;hb=6d8c8ea73a774c3568e6d28a4cbebcf7979d5c2a;hp=2bdc48a1dc81a381ba0cda7915e7f0069aca296d;hpb=0883b3245bf0deb9106c4041e9afbd3521b79280;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 2bdc48a1d..7c840ffa7 100644 --- a/client/src/app/shared/users/user.model.ts +++ b/client/src/app/shared/users/user.model.ts @@ -1,6 +1,14 @@ -import { hasUserRight, User as UserServerModel, UserRight, UserRole, VideoChannel } from '../../../../../shared' -import { Account } from '../account/account.model' +import { + Account as AccountServerModel, + hasUserRight, + User as UserServerModel, + UserRight, + UserRole, + VideoChannel +} from '../../../../../shared' import { NSFWPolicyType } from '../../../../../shared/models/videos/nsfw-policy.type' +import { Account } from '@app/shared/account/account.model' +import { Avatar } from '../../../../../shared/models/avatars/avatar.model' export type UserConstructorHash = { id: number, @@ -8,11 +16,16 @@ export type UserConstructorHash = { email: string, role: UserRole, videoQuota?: number, + videoQuotaDaily?: number, nsfwPolicy?: NSFWPolicyType, + webTorrentEnabled?: boolean, autoPlayVideo?: boolean, createdAt?: Date, - account?: Account, + account?: AccountServerModel, videoChannels?: VideoChannel[] + + blocked?: boolean + blockedReason?: string } export class User implements UserServerModel { id: number @@ -20,51 +33,59 @@ export class User implements UserServerModel { email: string role: UserRole nsfwPolicy: NSFWPolicyType + webTorrentEnabled: boolean autoPlayVideo: boolean videoQuota: number + videoQuotaDaily: number account: Account videoChannels: VideoChannel[] createdAt: Date + blocked: boolean + blockedReason?: string + 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 - } + this.videoChannels = hash.videoChannels + this.videoQuota = hash.videoQuota + this.videoQuotaDaily = hash.videoQuotaDaily + this.nsfwPolicy = hash.nsfwPolicy + this.webTorrentEnabled = hash.webTorrentEnabled + this.autoPlayVideo = hash.autoPlayVideo + this.createdAt = hash.createdAt + this.blocked = hash.blocked + this.blockedReason = hash.blockedReason - if (hash.videoQuota !== undefined) { - this.videoQuota = hash.videoQuota - } - - if (hash.nsfwPolicy !== undefined) { - this.nsfwPolicy = hash.nsfwPolicy + if (hash.account !== undefined) { + this.account = new Account(hash.account) } + } - if (hash.autoPlayVideo !== undefined) { - this.autoPlayVideo = hash.autoPlayVideo - } + get accountAvatarUrl () { + if (!this.account) return '' - if (hash.createdAt !== undefined) { - this.createdAt = hash.createdAt - } + return this.account.avatarUrl } hasRight (right: UserRight) { return hasUserRight(this.role, right) } - getAvatarUrl () { - return Account.GET_ACCOUNT_AVATAR_URL(this.account) - } - patch (obj: UserServerModel) { for (const key of Object.keys(obj)) { this[key] = obj[key] } + + if (obj.account !== undefined) { + this.account = new Account(obj.account) + } + } + + updateAccountAvatar (newAccountAvatar: Avatar) { + this.account.updateAvatar(newAccountAvatar) } }