Fix: frontend better reflect global perms for bulk edit, disabled form state (#8469)

This commit is contained in:
shamoon
2024-12-11 01:05:23 -08:00
committed by GitHub
parent beb8ed8313
commit 2ac2a6dec6
14 changed files with 150 additions and 108 deletions

View File

@@ -105,18 +105,18 @@
</button>
<div ngbDropdown>
<button class="btn btn-sm btn-outline-primary" id="dropdownSelect" ngbDropdownToggle>
<button class="btn btn-sm btn-outline-primary" id="dropdownSelect" [disabled]="!userCanEdit && !userCanAdd" ngbDropdownToggle>
<i-bs name="three-dots"></i-bs>
<div class="d-none d-sm-inline">&nbsp;<ng-container i18n>Actions</ng-container></div>
</button>
<div ngbDropdownMenu aria-labelledby="dropdownSelect" class="shadow">
<button ngbDropdownItem (click)="reprocessSelected()" [disabled]="!userCanEditAll">
<button ngbDropdownItem (click)="reprocessSelected()" [disabled]="!userCanEditAll && !userCanEditAll">
<i-bs name="body-text"></i-bs>&nbsp;<ng-container i18n>Reprocess</ng-container>
</button>
<button ngbDropdownItem (click)="rotateSelected()" [disabled]="!userOwnsAll">
<button ngbDropdownItem (click)="rotateSelected()" [disabled]="!userOwnsAll && !userCanEditAll">
<i-bs name="arrow-clockwise"></i-bs>&nbsp;<ng-container i18n>Rotate</ng-container>
</button>
<button ngbDropdownItem (click)="mergeSelected()" [disabled]="!userCanEditAll || list.selected.size < 2">
<button ngbDropdownItem (click)="mergeSelected()" [disabled]="!userCanAdd || list.selected.size < 2">
<i-bs name="journals"></i-bs>&nbsp;<ng-container i18n>Merge</ng-container>
</button>
</div>

View File

@@ -132,6 +132,20 @@ export class BulkEditorComponent
return ownsAll
}
get userCanEdit(): boolean {
return this.permissionService.currentUserCan(
PermissionAction.Change,
PermissionType.Document
)
}
get userCanAdd(): boolean {
return this.permissionService.currentUserCan(
PermissionAction.Add,
PermissionType.Document
)
}
ngOnInit() {
if (
this.permissionService.currentUserCan(