]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/form-input-disable.directive.ts
Import ceph 15.2.8
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / directives / form-input-disable.directive.ts
CommitLineData
f91f0fd5
TL
1import { AfterViewInit, Directive, ElementRef, Optional } from '@angular/core';
2
3import { Permissions } from '../models/permissions';
4import { AuthStorageService } from '../services/auth-storage.service';
5import { FormScopeDirective } from './form-scope.directive';
6
7@Directive({
8 selector:
9 'input:not([cdNoFormInputDisable]), select:not([cdNoFormInputDisable]), [cdFormInputDisable]'
10})
11export class FormInputDisableDirective implements AfterViewInit {
12 permissions: Permissions;
13 service_name: keyof Permissions;
14
15 constructor(
16 @Optional() private formScope: FormScopeDirective,
17 private authStorageService: AuthStorageService,
18 private elementRef: ElementRef
19 ) {}
20
21 ngAfterViewInit() {
22 this.permissions = this.authStorageService.getPermissions();
23 if (this.formScope !== null) {
24 this.service_name = this.formScope.cdFormScope;
25 }
26 if (this.service_name && !this.permissions[this.service_name].update) {
27 this.elementRef.nativeElement.disabled = true;
28 }
29 }
30}