Fix: saved view permissions fixes (#7672)

This commit is contained in:
shamoon
2024-09-10 13:33:19 -07:00
committed by GitHub
parent f1559b7108
commit bee963c23d
5 changed files with 30 additions and 20 deletions

View File

@@ -57,7 +57,7 @@ describe(`Additional service tests for SavedViewService`, () => {
let settingsService
it('should retrieve saved views and sort them', () => {
service.initialize()
service.reload()
const req = httpTestingController.expectOne(
`${environment.apiBaseUrl}${endpoint}/?page=1&page_size=100000`
)
@@ -70,7 +70,7 @@ describe(`Additional service tests for SavedViewService`, () => {
})
it('should gracefully handle errors', () => {
service.initialize()
service.reload()
const req = httpTestingController.expectOne(
`${environment.apiBaseUrl}${endpoint}/?page=1&page_size=100000`
)

View File

@@ -6,6 +6,7 @@ import { SavedView } from 'src/app/data/saved-view'
import { AbstractPaperlessService } from './abstract-paperless-service'
import { SettingsService } from '../settings.service'
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { Results } from 'src/app/data/results'
@Injectable({
providedIn: 'root',
@@ -21,22 +22,31 @@ export class SavedViewService extends AbstractPaperlessService<SavedView> {
super(http, 'saved_views')
}
public initialize() {
this.reload()
public list(
page?: number,
pageSize?: number,
sortField?: string,
sortReverse?: boolean,
extraParams?: any
): Observable<Results<SavedView>> {
return super.list(page, pageSize, sortField, sortReverse, extraParams).pipe(
tap({
next: (r) => {
this.savedViews = r.results
this.loading = false
this.settingsService.dashboardIsEmpty =
this.dashboardViews.length === 0
},
error: () => {
this.loading = false
this.settingsService.dashboardIsEmpty = true
},
})
)
}
private reload() {
this.listAll().subscribe({
next: (r) => {
this.savedViews = r.results
this.loading = false
this.settingsService.dashboardIsEmpty = this.dashboardViews.length === 0
},
error: () => {
this.loading = false
this.settingsService.dashboardIsEmpty = true
},
})
public reload() {
this.listAll().subscribe()
}
get allViews() {