X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fusers%2Fuser-edit%2Fuser-edit.ts;h=6625d65d6ee8709b2bde8a0d6b42cad317aabeb6;hb=a95a4cc89155f448e6f9ca0957170f3c72a9d964;hp=76497c9b652894a36e74cfcadd579f27b9febe8b;hpb=6a84aafd23c2f887f837cc4826cf7c8c07d1c60f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+admin/users/user-edit/user-edit.ts b/client/src/app/+admin/users/user-edit/user-edit.ts index 76497c9b6..6625d65d6 100644 --- a/client/src/app/+admin/users/user-edit/user-edit.ts +++ b/client/src/app/+admin/users/user-edit/user-edit.ts @@ -1,23 +1,34 @@ -import { ServerService } from '../../../core' +import { AuthService, ServerService } from '../../../core' import { FormReactive } from '../../../shared' -import { VideoResolution } from '../../../../../../shared/models/videos/video-resolution.enum' +import { USER_ROLE_LABELS, UserRole, VideoResolution } from '../../../../../../shared' +import { ConfigService } from '@app/+admin/config/shared/config.service' +import { UserAdminFlag } from '@shared/models/users/user-flag.model' export abstract class UserEdit extends FormReactive { - videoQuotaOptions = [ - { value: -1, label: 'Unlimited' }, - { value: 0, label: '0'}, - { value: 100 * 1024 * 1024, label: '100MB' }, - { value: 500 * 1024 * 1024, label: '500MB' }, - { value: 1024 * 1024 * 1024, label: '1GB' }, - { value: 5 * 1024 * 1024 * 1024, label: '5GB' }, - { value: 20 * 1024 * 1024 * 1024, label: '20GB' }, - { value: 50 * 1024 * 1024 * 1024, label: '50GB' } - ] + videoQuotaOptions: { value: string, label: string }[] = [] + videoQuotaDailyOptions: { value: string, label: string }[] = [] + username: string + userId: number protected abstract serverService: ServerService + protected abstract configService: ConfigService + protected abstract auth: AuthService abstract isCreation (): boolean abstract getFormButtonTitle (): string + getRoles () { + const authUser = this.auth.getUser() + + if (authUser.role === UserRole.ADMINISTRATOR) { + return Object.keys(USER_ROLE_LABELS) + .map(key => ({ value: key.toString(), label: USER_ROLE_LABELS[key] })) + } + + return [ + { value: UserRole.USER.toString(), label: USER_ROLE_LABELS[UserRole.USER] } + ] + } + isTranscodingInformationDisplayed () { const formVideoQuota = parseInt(this.form.value['videoQuota'], 10) @@ -26,14 +37,35 @@ export abstract class UserEdit extends FormReactive { } computeQuotaWithTranscoding () { - const resolutions = this.serverService.getConfig().transcoding.enabledResolutions - const higherResolution = VideoResolution.H_1080P + const transcodingConfig = this.serverService.getConfig().transcoding + + const resolutions = transcodingConfig.enabledResolutions + const higherResolution = VideoResolution.H_4K let multiplier = 0 for (const resolution of resolutions) { multiplier += resolution / higherResolution } + if (transcodingConfig.hls.enabled) multiplier *= 2 + return multiplier * parseInt(this.form.value['videoQuota'], 10) } + + resetPassword () { + return + } + + protected buildAdminFlags (formValue: any) { + return formValue.byPassAutoBlacklist ? UserAdminFlag.BY_PASS_VIDEO_AUTO_BLACKLIST : UserAdminFlag.NONE + } + + protected buildQuotaOptions () { + // These are used by a HTML select, so convert key into strings + this.videoQuotaOptions = this.configService + .videoQuotaOptions.map(q => ({ value: q.value.toString(), label: q.label })) + + this.videoQuotaDailyOptions = this.configService + .videoQuotaDailyOptions.map(q => ({ value: q.value.toString(), label: q.label })) + } }