mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-11 00:57:09 +01:00
Restrict status messages by owner if set
This commit is contained in:
parent
b961df90a7
commit
022bb272e6
4 changed files with 60 additions and 3 deletions
|
|
@ -2,6 +2,7 @@ import { Injectable } from '@angular/core'
|
|||
import { Subject } from 'rxjs'
|
||||
import { environment } from 'src/environments/environment'
|
||||
import { WebsocketConsumerStatusMessage } from '../data/websocket-consumer-status-message'
|
||||
import { SettingsService } from './settings.service'
|
||||
|
||||
// see ConsumerFilePhase in src/documents/consumer.py
|
||||
export enum FileStatusPhase {
|
||||
|
|
@ -44,6 +45,8 @@ export class FileStatus {
|
|||
|
||||
documentId: number
|
||||
|
||||
ownerId: number
|
||||
|
||||
getProgress(): number {
|
||||
switch (this.phase) {
|
||||
case FileStatusPhase.STARTED:
|
||||
|
|
@ -81,7 +84,7 @@ export class FileStatus {
|
|||
providedIn: 'root',
|
||||
})
|
||||
export class ConsumerStatusService {
|
||||
constructor() {}
|
||||
constructor(private settingsService: SettingsService) {}
|
||||
|
||||
private statusWebSocket: WebSocket
|
||||
|
||||
|
|
@ -143,6 +146,15 @@ export class ConsumerStatusService {
|
|||
this.statusWebSocket.onmessage = (ev) => {
|
||||
let statusMessage: WebsocketConsumerStatusMessage = JSON.parse(ev['data'])
|
||||
|
||||
// tasks are async so we rely on checking user id
|
||||
if (
|
||||
statusMessage.owner_id &&
|
||||
statusMessage.owner_id !== this.settingsService.currentUser?.id &&
|
||||
!this.settingsService.currentUser?.is_superuser
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
let statusMessageGet = this.get(
|
||||
statusMessage.task_id,
|
||||
statusMessage.filename
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue