From 588a786d73626b79157c51ac4dbe6004e40f4bf8 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 20 Feb 2023 02:52:16 -0800 Subject: [PATCH] Fix startup without saved view permissions --- src-ui/cypress/e2e/settings/settings.cy.ts | 2 +- .../dashboard/dashboard.component.ts | 19 +++++++++++++++++-- .../app/services/rest/saved-view.service.ts | 6 +++++- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src-ui/cypress/e2e/settings/settings.cy.ts b/src-ui/cypress/e2e/settings/settings.cy.ts index 95443bbe2..259f15403 100644 --- a/src-ui/cypress/e2e/settings/settings.cy.ts +++ b/src-ui/cypress/e2e/settings/settings.cy.ts @@ -115,7 +115,7 @@ describe('settings', () => { cy.contains('a', 'Dashboard').click() cy.contains('You have unsaved changes') cy.contains('button', 'Cancel').click() - cy.contains('button', 'Save').click().wait('@savedViews').wait(2000) + cy.contains('button', 'Save').click().wait(2000) cy.contains('a', 'Dashboard').click() cy.contains('You have unsaved changes').should('not.exist') }) diff --git a/src-ui/src/app/components/dashboard/dashboard.component.ts b/src-ui/src/app/components/dashboard/dashboard.component.ts index f2eddae37..271e2cf14 100644 --- a/src-ui/src/app/components/dashboard/dashboard.component.ts +++ b/src-ui/src/app/components/dashboard/dashboard.component.ts @@ -1,4 +1,9 @@ import { Component } from '@angular/core' +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' import { ComponentWithPermissions } from '../with-permissions/with-permissions.component' @@ -10,10 +15,20 @@ import { ComponentWithPermissions } from '../with-permissions/with-permissions.c }) export class DashboardComponent extends ComponentWithPermissions { constructor( - public savedViewService: SavedViewService, - public settingsService: SettingsService + public settingsService: SettingsService, + private permissionsService: PermissionsService, + public savedViewService: SavedViewService ) { super() + + if ( + permissionsService.currentUserCan( + PermissionAction.View, + PermissionType.SavedView + ) + ) { + savedViewService.initialize() + } } get subtitle() { diff --git a/src-ui/src/app/services/rest/saved-view.service.ts b/src-ui/src/app/services/rest/saved-view.service.ts index 46df5e72c..307eaae10 100644 --- a/src-ui/src/app/services/rest/saved-view.service.ts +++ b/src-ui/src/app/services/rest/saved-view.service.ts @@ -3,6 +3,7 @@ import { Injectable } from '@angular/core' import { combineLatest, Observable } from 'rxjs' import { tap } from 'rxjs/operators' import { PaperlessSavedView } from 'src/app/data/paperless-saved-view' +import { PermissionsService } from '../permissions.service' import { AbstractPaperlessService } from './abstract-paperless-service' @Injectable({ @@ -11,8 +12,11 @@ import { AbstractPaperlessService } from './abstract-paperless-service' export class SavedViewService extends AbstractPaperlessService { loading: boolean - constructor(http: HttpClient) { + constructor(http: HttpClient, permissionService: PermissionsService) { super(http, 'saved_views') + } + + public initialize() { this.reload() }