]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
prevent edit docs when dont have global edit perms
authorshamoon <4887959+shamoon@users.noreply.github.com>
Mon, 20 Feb 2023 16:20:37 +0000 (08:20 -0800)
committershamoon <4887959+shamoon@users.noreply.github.com>
Mon, 20 Feb 2023 16:20:37 +0000 (08:20 -0800)
src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html
src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts

index e7bdc8d75419d2661d520ea2e397b84f953a219d..d98dccfb3529e5c4c940103c82f2cdca00151d6e 100644 (file)
@@ -71,7 +71,7 @@
   <div class="col-auto ms-auto mb-2 mb-xl-0 d-flex">
     <div class="btn-toolbar me-2">
 
-      <button type="button" class="btn btn-sm btn-outline-primary me-2" (click)="setPermissions()" [disabled]="!userOwnsAll">
+      <button type="button" class="btn btn-sm btn-outline-primary me-2" (click)="setPermissions()" [disabled]="!userOwnsAll || !userCanEditAll">
         <svg width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor">
           <use xlink:href="assets/bootstrap-icons.svg#person-fill-lock" />
         </svg>&nbsp;<ng-container i18n>Permissions</ng-container>
index 27b7a28f0d5f07337b5f9fc708011ec1c9d32297..0c35d1d996c3a1d0808ab0e4ffa072181499b189 100644 (file)
@@ -27,7 +27,11 @@ import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
 import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
 import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
 import { PermissionsDialogComponent } from '../../common/permissions-dialog/permissions-dialog.component'
-import { PermissionsService } from 'src/app/services/permissions.service'
+import {
+  PermissionAction,
+  PermissionsService,
+  PermissionType,
+} from 'src/app/services/permissions.service'
 import { FormControl, FormGroup } from '@angular/forms'
 import { first, Subject, takeUntil } from 'rxjs'
 
@@ -83,7 +87,12 @@ export class BulkEditorComponent
   )
 
   get userCanEditAll(): boolean {
-    let canEdit: boolean = true
+    let canEdit: boolean = this.permissionService.currentUserCan(
+      PermissionAction.Change,
+      PermissionType.Document
+    )
+    if (!canEdit) return false
+
     const docs = this.list.documents.filter((d) => this.list.selected.has(d.id))
     canEdit = docs.every((d) =>
       this.permissionService.currentUserHasObjectPermissions(