From e176e69e1da5331b97c20bd0c242121821eb912d Mon Sep 17 00:00:00 2001 From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com> Date: Wed, 24 Mar 2021 16:55:02 +0100 Subject: [PATCH] feat: updating user servuce --- src/users/users.controller.ts | 14 +++++++++++++- src/users/users.service.ts | 6 ++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts index 382369894..85ec07d85 100644 --- a/src/users/users.controller.ts +++ b/src/users/users.controller.ts @@ -9,6 +9,8 @@ import { PasswordResetDto } from './dto/reset-password.dto'; import { UsersService } from './users.service'; import { StructuresService } from '../structures/services/structures.service'; import { TempUserService } from '../temp-user/temp-user.service'; +import { RolesGuard } from './guards/roles.guard'; +import { Roles } from './decorators/roles.decorator'; @Controller('users') export class UsersController { @@ -117,8 +119,9 @@ export class UsersController { return user; } + @UseGuards(JwtAuthGuard, RolesGuard) + @Roles('admin') @Post('delete-user') - @ApiResponse({ status: 200, description: 'User deleted' }) public async deleteUser(@Req() req, @Body() email: { email: string }) { const user = await this.usersService.deleteOne(email.email); user.structuresLink.forEach((structureId) => { @@ -131,8 +134,17 @@ export class UsersController { return user; } + @UseGuards(JwtAuthGuard, RolesGuard) + @Roles('admin') @Get() public async getAllUsers(@Req() req) { return this.usersService.findAll(); } + + @UseGuards(JwtAuthGuard, RolesGuard) + @Roles('admin') + @Post('searchUsers') + public async searchUsers(@Req() req, @Body() searchString: { searchString: string }) { + return this.usersService.searchUsers(searchString.searchString); + } } diff --git a/src/users/users.service.ts b/src/users/users.service.ts index c7806f64e..8d0404c3f 100644 --- a/src/users/users.service.ts +++ b/src/users/users.service.ts @@ -499,4 +499,10 @@ export class UsersService { }); return owners; } + + public async searchUsers(searchString: string) { + return this.userModel + .find( {email: new RegExp(searchString, 'i') }) + .exec(); + } } -- GitLab