diff --git a/packages/shared/src/constants/roles.ts b/packages/shared/src/constants/roles.ts index 568ad34..136817c 100644 --- a/packages/shared/src/constants/roles.ts +++ b/packages/shared/src/constants/roles.ts @@ -3,6 +3,7 @@ export const Role = { TENANT_ADMIN: 'tenant_admin', MANAGER: 'manager', TECHNICIAN: 'technician', + COLLECTOR: 'collector', VIEWER: 'viewer', } as const; @@ -20,6 +21,7 @@ const ROLE_LEVEL: Record = { [Role.TENANT_ADMIN]: 80, [Role.MANAGER]: 60, [Role.TECHNICIAN]: 40, + [Role.COLLECTOR]: 30, [Role.VIEWER]: 20, }; diff --git a/src/client/client.controller.ts b/src/client/client.controller.ts index 78f50a5..96ab154 100644 --- a/src/client/client.controller.ts +++ b/src/client/client.controller.ts @@ -23,7 +23,7 @@ export class ClientController { constructor(private readonly clientService: ClientService) {} @Get() - @Roles('technician') + @Roles('technician', 'collector') async findAll( @CurrentUser() user: CurrentUserPayload, @Query('areaId') areaId?: string, @@ -36,7 +36,7 @@ export class ClientController { } @Get(':id') - @Roles('technician') + @Roles('technician', 'collector') async findById( @CurrentUser() user: CurrentUserPayload, @Param('id') id: string, diff --git a/src/invoice/invoice.controller.ts b/src/invoice/invoice.controller.ts index 2b51cb7..e620795 100644 --- a/src/invoice/invoice.controller.ts +++ b/src/invoice/invoice.controller.ts @@ -20,7 +20,7 @@ export class InvoiceController { constructor(private readonly invoiceService: InvoiceService) {} @Get() - @Roles('technician') + @Roles('technician', 'collector') async findAll( @CurrentUser() user: CurrentUserPayload, @Query('clientId') clientId?: string, @@ -30,7 +30,7 @@ export class InvoiceController { } @Get(':id') - @Roles('technician') + @Roles('technician', 'collector') async findById( @CurrentUser() user: CurrentUserPayload, @Param('id') id: string, diff --git a/src/payment/payment.controller.ts b/src/payment/payment.controller.ts index ad2c78c..7af0332 100644 --- a/src/payment/payment.controller.ts +++ b/src/payment/payment.controller.ts @@ -23,7 +23,7 @@ export class PaymentController { constructor(private readonly paymentService: PaymentService) {} @Get() - @Roles('technician') + @Roles('technician', 'collector') async findAll( @CurrentUser() user: CurrentUserPayload, @Query('clientId') clientId?: string, @@ -32,7 +32,7 @@ export class PaymentController { } @Post() - @Roles('technician') + @Roles('technician', 'collector') async record( @CurrentUser() user: CurrentUserPayload, @Body() dto: RecordPaymentDto, @@ -41,19 +41,19 @@ export class PaymentController { } @Get('unremitted') - @Roles('technician') + @Roles('technician', 'collector') async getUnremitted(@CurrentUser() user: CurrentUserPayload, @Query('collectorId') collectorId?: string) { return this.paymentService.getUnremittedPayments(user.tenantId, collectorId || user.sub); } @Get('remittances') - @Roles('technician') + @Roles('technician', 'collector') async findRemittances(@CurrentUser() user: CurrentUserPayload) { return this.paymentService.findRemittances(user.tenantId); } @Post('remittances') - @Roles('technician') + @Roles('technician', 'collector') async submitRemittance( @CurrentUser() user: CurrentUserPayload, @Body() dto: CreateRemittanceDto, diff --git a/src/ticket/ticket.controller.ts b/src/ticket/ticket.controller.ts index fcf8c11..7cb9f5a 100644 --- a/src/ticket/ticket.controller.ts +++ b/src/ticket/ticket.controller.ts @@ -23,7 +23,7 @@ export class TicketController { constructor(private readonly ticketService: TicketService) {} @Get() - @Roles('technician') + @Roles('technician', 'collector') async findAll( @CurrentUser() user: CurrentUserPayload, @Query('clientId') clientId?: string, @@ -34,7 +34,7 @@ export class TicketController { } @Get(':id') - @Roles('technician') + @Roles('technician', 'collector') async findById( @CurrentUser() user: CurrentUserPayload, @Param('id') id: string, @@ -52,7 +52,7 @@ export class TicketController { } @Patch(':id') - @Roles('technician') + @Roles('technician', 'collector') async update( @CurrentUser() user: CurrentUserPayload, @Param('id') id: string, @@ -62,7 +62,7 @@ export class TicketController { } @Patch(':id/resolve') - @Roles('technician') + @Roles('technician', 'collector') async resolve( @CurrentUser() user: CurrentUserPayload, @Param('id') id: string,