X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fusers%2Fuser-edit%2Fuser-edit.ts;h=02f1dcd42cae6d3e0bd8e363dc73a2d13286d016;hb=ba430d7516bc5b1324b60571ba7594460969b7fb;hp=99ce5804b75ac3eb98947475404898387476c2d2;hpb=6d8c8ea73a774c3568e6d28a4cbebcf7979d5c2a;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 99ce5804b..02f1dcd42 100644 --- a/client/src/app/+admin/users/user-edit/user-edit.ts +++ b/client/src/app/+admin/users/user-edit/user-edit.ts @@ -1,38 +1,74 @@ -import { ServerService } from '../../../core' +import { AuthService, ServerService } from '../../../core' import { FormReactive } from '../../../shared' -import { USER_ROLE_LABELS, VideoResolution } from '../../../../../../shared' +import { ServerConfig, 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' +import { OnInit } from '@angular/core' -export abstract class UserEdit extends FormReactive { - +export abstract class UserEdit extends FormReactive implements OnInit { videoQuotaOptions: { value: string, label: string }[] = [] videoQuotaDailyOptions: { value: string, label: string }[] = [] - roles = Object.keys(USER_ROLE_LABELS).map(key => ({ value: key.toString(), label: USER_ROLE_LABELS[key] })) + username: string + userId: number + + protected serverConfig: ServerConfig protected abstract serverService: ServerService protected abstract configService: ConfigService + protected abstract auth: AuthService abstract isCreation (): boolean abstract getFormButtonTitle (): string + ngOnInit (): void { + this.serverConfig = this.serverService.getTmpConfig() + this.serverService.getConfig() + .subscribe(config => this.serverConfig = config) + } + + 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) - return this.serverService.getConfig().transcoding.enabledResolutions.length !== 0 && + return this.serverConfig.transcoding.enabledResolutions.length !== 0 && formVideoQuota > 0 } computeQuotaWithTranscoding () { - const resolutions = this.serverService.getConfig().transcoding.enabledResolutions - const higherResolution = VideoResolution.H_1080P + const transcodingConfig = this.serverConfig.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