From d7aa0cb862b0ff9791a657c5ffc97b5e9eb93db9 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 4 Aug 2026 07:03:13 -0700 Subject: [PATCH] Fix: hide some saved view operations on management page without permissions - #13542 (#13542) --- .../saved-views/saved-views.component.html | 20 +++++++++------- .../saved-views/saved-views.component.ts | 24 ++++++++++++++++--- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src-ui/src/app/components/manage/saved-views/saved-views.component.html b/src-ui/src/app/components/manage/saved-views/saved-views.component.html index c4005cb2d..6b7e7cb71 100644 --- a/src-ui/src/app/components/manage/saved-views/saved-views.component.html +++ b/src-ui/src/app/components/manage/saved-views/saved-views.component.html @@ -14,16 +14,18 @@
-
-
- - + @if (canSaveSettings) { +
+
+ + +
+
+ + +
-
- - -
-
+ }
@if (canDeleteSavedView(view)) { diff --git a/src-ui/src/app/components/manage/saved-views/saved-views.component.ts b/src-ui/src/app/components/manage/saved-views/saved-views.component.ts index 3d9ee84dd..21942b9c1 100644 --- a/src-ui/src/app/components/manage/saved-views/saved-views.component.ts +++ b/src-ui/src/app/components/manage/saved-views/saved-views.component.ts @@ -17,6 +17,7 @@ import { IfPermissionsDirective } from 'src/app/directives/if-permissions.direct import { PermissionAction, PermissionsService, + PermissionType, } from 'src/app/services/permissions.service' import { SavedViewService } from 'src/app/services/rest/saved-view.service' import { SettingsService } from 'src/app/services/settings.service' @@ -71,7 +72,9 @@ export class SavedViewsComponent constructor() { super() - this.settings.organizingSidebarSavedViews.set(true) + if (this.canSaveSettings) { + this.settings.organizingSidebarSavedViews.set(true) + } } ngOnInit(): void { @@ -89,7 +92,9 @@ export class SavedViewsComponent } ngOnDestroy(): void { - this.settings.organizingSidebarSavedViews.set(false) + if (this.canSaveSettings) { + this.settings.organizingSidebarSavedViews.set(false) + } super.ngOnDestroy() } @@ -216,7 +221,7 @@ export class SavedViewsComponent switchMap(() => this.savedViewService.patchMany(changed)) ) } - if (visibilityChanged) { + if (visibilityChanged && this.canSaveSettings) { saveOperation = saveOperation.pipe( switchMap(() => this.settings.updateSavedViewsVisibility( @@ -250,6 +255,19 @@ export class SavedViewsComponent return this.permissionsService.currentUserOwnsObject(view) } + public get canSaveSettings(): boolean { + return ( + this.permissionsService.currentUserCan( + PermissionAction.Change, + PermissionType.UISettings + ) && + this.permissionsService.currentUserCan( + PermissionAction.Add, + PermissionType.UISettings + ) + ) + } + public editPermissions(savedView: SavedView): void { const modal = this.modalService.open(PermissionsDialogComponent, { backdrop: 'static',