From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 20 Feb 2023 10:52:16 +0000 (-0800) Subject: Fix startup without saved view permissions X-Git-Tag: v1.14.0-beta.rc1~91^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F2717%2Fhead;p=thirdparty%2Fpaperless-ngx.git Fix startup without saved view permissions --- diff --git a/src-ui/cypress/e2e/settings/settings.cy.ts b/src-ui/cypress/e2e/settings/settings.cy.ts index 95443bbe2e..259f154036 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 f2eddae37a..271e2cf147 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 46df5e72cf..307eaae100 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() }