]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: document link field consistent behavior with insufficient permissions (#7953)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Thu, 17 Oct 2024 21:31:24 +0000 (14:31 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Thu, 17 Oct 2024 21:32:56 +0000 (14:32 -0700)
src-ui/src/app/components/common/input/document-link/document-link.component.html
src-ui/src/app/components/common/input/document-link/document-link.component.scss
src-ui/src/app/components/document-detail/document-detail.component.html
src-ui/src/app/components/document-detail/document-detail.component.ts

index 94f4f21b4912834cb3549c84cb6bec09380b170f..70b6d82639638318ccaae61b618c30e4c01bd4e0 100644 (file)
@@ -40,7 +40,7 @@
     (change)="onChange(selectedDocuments)">
     <ng-template ng-label-tmp let-document="item">
       <div class="d-flex align-items-center">
-        <button class="btn p-0 lh-1" (click)="unselect(document)" title="Remove link" i18n-title><i-bs name="x"></i-bs></button>
+        <button class="btn p-0 lh-1" [disabled]="disabled" (click)="unselect(document)" title="Remove link" i18n-title><i-bs name="x"></i-bs></button>
         <a routerLink="/documents/{{document.id}}" class="badge bg-light text-primary" (mousedown)="$event.stopImmediatePropagation();" title="Open link" i18n-title>
           <i-bs width="0.9em" height="0.9em" name="file-text"></i-bs>&nbsp;<span>{{document.title}}</span>
         </a>
index 5541def31fd75148cd5111b4c50a0f54406475cf..1c83a71227c3dcbdca65fc8ad2b89811831608c8 100644 (file)
@@ -3,7 +3,19 @@
 
     .ng-value {
         background-color: transparent !important;
-        border-color: transparent;
+        border-color: transparent !important;
+    }
+}
+
+.paperless-input-select.disabled {
+    --bs-btn-disabled-border-color: transparent;
+    ::ng-deep ng-select {
+        .ng-select-container {
+            div, .ng-arrow-wrapper, input {
+                cursor: not-allowed;
+            }
+            background-color: var(--pngx-bg-alt) !important;
+        }
     }
 }
 
index e44d7a7131ced92bad5a8ed6725df101953b728f..25a512463accddeae478125226eec8c45b1bbd91 100644 (file)
       @if (!hasNext()) {
         <button type="button" class="order-2 btn btn-sm btn-outline-primary" (click)="save(true)" i18n [disabled]="!userCanEdit || networkActive || (isDirty$ | async) !== true">Save &amp; close</button>
       }
+      <button type="button" class="order-0 btn btn-sm btn-outline-secondary" (click)="discard()" i18n [disabled]="!userCanEdit || networkActive || (isDirty$ | async) !== true">Discard</button>
     </ng-container>
-    <button type="button" class="order-0 btn btn-sm btn-outline-secondary" (click)="discard()" i18n [disabled]="!userCanEdit || networkActive || (isDirty$ | async) !== true">Discard</button>
   </div>
 </ng-template>
 
index 084efefe7e751236c3e6a2b9e828d6615aac62a1..6cd26b3685a0044c0ac9ae838adcc5c7d8955dcd 100644 (file)
@@ -1020,10 +1020,14 @@ export class DocumentDetailComponent
     }
     return (
       !this.document ||
-      this.permissionsService.currentUserHasObjectPermissions(
+      (this.permissionsService.currentUserCan(
         PermissionAction.Change,
-        doc
-      )
+        PermissionType.Document
+      ) &&
+        this.permissionsService.currentUserHasObjectPermissions(
+          PermissionAction.Change,
+          doc
+        ))
     )
   }