diff --git a/projects/editor/src/app/app.component.ts b/projects/editor/src/app/app.component.ts index 95ca2f6c011fc0c225146cb9812968be92b97375..4f11295cfa50cb084d100ce07b23ac711d192ed7 100644 --- a/projects/editor/src/app/app.component.ts +++ b/projects/editor/src/app/app.component.ts @@ -34,6 +34,7 @@ export class AppComponent implements OnInit { this.veronaApiService.startCommand .subscribe((message: StartCommand): void => { this.unitService.loadUnitDefinition(message.unitDefinition); + if (message.editorConfig.role === 'developer') this.unitService.allowExpertMode = false; }); this.veronaApiService.sendReady(); registerLocaleData(localeDe); diff --git a/projects/editor/src/app/components/unit-view/unit-view.component.html b/projects/editor/src/app/components/unit-view/unit-view.component.html index 290b3f091b0bbb98e4717de8274a73fcc084a2c7..1ac5415cb1af7e300d1ddf92799393ceee9d8572 100644 --- a/projects/editor/src/app/components/unit-view/unit-view.component.html +++ b/projects/editor/src/app/components/unit-view/unit-view.component.html @@ -99,7 +99,8 @@ </button> <mat-menu #extrasMenu="matMenu" (click)="$event.stopPropagation()"> <div [style.padding]="'0 20px 10px'" (click)="$event.stopPropagation()"> - <mat-checkbox [ngModel]="unitService.expertMode" (change)="setExpertMode($event)"> + <mat-checkbox [disabled]="!unitService.allowExpertMode" + [ngModel]="unitService.expertMode" (change)="setExpertMode($event)"> Expertenmodus aktivieren </mat-checkbox> </div> diff --git a/projects/editor/src/app/services/unit-services/unit.service.ts b/projects/editor/src/app/services/unit-services/unit.service.ts index 09169b72b530fdab69cf3cb2ad1a12b0abb5c585..ef9bb3ffaebafa217bb82237f2ff02d8ba35006f 100644 --- a/projects/editor/src/app/services/unit-services/unit.service.ts +++ b/projects/editor/src/app/services/unit-services/unit.service.ts @@ -36,7 +36,8 @@ export class UnitService { sectionCountUpdated: Subject<void> = new Subject<void>(); referenceManager: ReferenceManager; savedSectionCode: string | undefined; - expertMode: boolean = false; + allowExpertMode: boolean = true; + expertMode: boolean = true; constructor(private selectionService: SelectionService, private veronaApiService: VeronaAPIService, @@ -47,6 +48,7 @@ export class UnitService { private idService: IDService) { this.unit = new Unit(); this.referenceManager = new ReferenceManager(this.unit); + this.expertMode = this.allowExpertMode; } loadUnitDefinition(unitDefinition: string): void { diff --git a/projects/editor/src/app/services/verona-api.service.ts b/projects/editor/src/app/services/verona-api.service.ts index f0068ea418e56e59ef4b4cef7e04fbf3a1c15f56..52da09c86f0a968cc889cf1d2c70d67293589f18 100644 --- a/projects/editor/src/app/services/verona-api.service.ts +++ b/projects/editor/src/app/services/verona-api.service.ts @@ -65,7 +65,8 @@ export interface StartCommand extends MessageEvent { unitDefinition: string, unitDefinitionType: string, editorConfig: { - directDownloadUrl: string + directDownloadUrl: string, + role: 'guest' | 'commentator' | 'developer' | 'maintainer' | 'super'; // only developer is non-expert } }