paperless-ngx/src-ui/src/app/pipes/username.pipe.ts
shamoon 43288153e0 Add frontend owner filtering
Add owner to doc cards, table
Frontend testing for owner filtering
2023-05-08 15:34:14 -07:00

43 lines
1.0 KiB
TypeScript

import { Pipe, PipeTransform } from '@angular/core'
import { UserService } from '../services/rest/user.service'
import {
PermissionAction,
PermissionType,
PermissionsService,
} from '../services/permissions.service'
import { PaperlessUser } from '../data/paperless-user'
@Pipe({
name: 'username',
})
export class UsernamePipe implements PipeTransform {
users: PaperlessUser[]
constructor(
permissionsService: PermissionsService,
userService: UserService
) {
if (
permissionsService.currentUserCan(
PermissionAction.View,
PermissionType.User
)
) {
userService.listAll().subscribe((r) => (this.users = r.results))
}
}
transform(userID: number): string {
return this.users
? this.getName(this.users.find((u) => u.id === userID)) ?? ''
: $localize`Shared`
}
getName(user: PaperlessUser): string {
if (!user) return ''
const name = [user.first_name, user.last_name].join(' ')
if (name.length > 1) return name.trim()
return user.username
}
}