@@ -19,6 +19,8 @@ import { ObjectIdValidationPipe } from '~/_common/pipes/object-id-validation.pip
1919import { PartialProjectionType } from '~/_common/types/partial-projection.type'
2020import { AgentsCreateDto , AgentsDto , AgentsUpdateDto } from '~/core/agents/_dto/agents.dto'
2121import { AgentsService } from './agents.service'
22+ import { AC_ACTIONS , AC_DEFAULT_POSSESSION } from '~/_common/types/ac-types'
23+ import { UseRoles } from '~/_common/decorators/use-roles.decorator'
2224
2325/**
2426 * Contrôleur pour la gestion des agents
@@ -79,6 +81,11 @@ export class AgentsController extends AbstractController {
7981 * @throws {BadRequestException } Si les données fournies sont invalides
8082 */
8183 @Post ( )
84+ @UseRoles ( {
85+ resource : 'core/agents' ,
86+ action : AC_ACTIONS . CREATE ,
87+ possession : AC_DEFAULT_POSSESSION ,
88+ } )
8289 @ApiCreateDecorator ( AgentsCreateDto , AgentsDto )
8390 public async create ( @Res ( ) res : Response , @Body ( ) body : AgentsCreateDto ) : Promise < Response > {
8491 const data = await this . _service . create ( body )
@@ -102,6 +109,11 @@ export class AgentsController extends AbstractController {
102109 * @todo Implémenter la recherche arborescente par parentId
103110 */
104111 @Get ( )
112+ @UseRoles ( {
113+ resource : 'core/agents' ,
114+ action : AC_ACTIONS . READ ,
115+ possession : AC_DEFAULT_POSSESSION ,
116+ } )
105117 @ApiPaginatedDecorator ( PickProjectionHelper ( AgentsDto , AgentsController . projection ) )
106118 public async search (
107119 @Res ( ) res : Response ,
@@ -148,6 +160,11 @@ export class AgentsController extends AbstractController {
148160 * @throws {NotFoundException } Si l'agent n'est pas trouvé
149161 */
150162 @Get ( ':_id([0-9a-fA-F]{24})' )
163+ @UseRoles ( {
164+ resource : 'core/agents' ,
165+ action : AC_ACTIONS . READ ,
166+ possession : AC_DEFAULT_POSSESSION ,
167+ } )
151168 @ApiParam ( { name : '_id' , type : String } )
152169 @ApiReadResponseDecorator ( AgentsDto )
153170 public async read (
@@ -179,6 +196,11 @@ export class AgentsController extends AbstractController {
179196 * @throws {BadRequestException } Si les données fournies sont invalides
180197 */
181198 @Patch ( ':_id([0-9a-fA-F]{24})' )
199+ @UseRoles ( {
200+ resource : 'core/agents' ,
201+ action : AC_ACTIONS . UPDATE ,
202+ possession : AC_DEFAULT_POSSESSION ,
203+ } )
182204 @ApiParam ( { name : '_id' , type : String } )
183205 @ApiUpdateDecorator ( AgentsUpdateDto , AgentsDto )
184206 public async update (
@@ -205,6 +227,11 @@ export class AgentsController extends AbstractController {
205227 * @throws {NotFoundException } Si l'agent n'est pas trouvé
206228 */
207229 @Delete ( ':_id([0-9a-fA-F]{24})' )
230+ @UseRoles ( {
231+ resource : 'core/agents' ,
232+ action : AC_ACTIONS . DELETE ,
233+ possession : AC_DEFAULT_POSSESSION ,
234+ } )
208235 @ApiParam ( { name : '_id' , type : String } )
209236 @ApiDeletedResponseDecorator ( AgentsDto )
210237 public async remove (
0 commit comments