diff --git a/src/modules/task-manager/controllers/workspace.controller.ts b/src/modules/task-manager/controllers/workspace.controller.ts index c92c142..8f53df3 100644 --- a/src/modules/task-manager/controllers/workspace.controller.ts +++ b/src/modules/task-manager/controllers/workspace.controller.ts @@ -4,12 +4,12 @@ import { WorkspaceService } from '../providers/workspace.service'; import { CreateWorkspaceDto } from '../dto/workspace/create-workspace.dto'; import { UpdateWorkspaceDto } from '../dto/workspace/update-workspace.dto'; import { TMWorkspace } from '../entities/workspace.entity'; -// import { AuthGuards } from '../../../common/decorators/auth-guard.decorator'; import { AdminRoute } from '../../../common/decorators/admin.decorator'; import { PermissionsDec } from '../../../common/decorators/permission.decorator'; import { PermissionEnum } from '../../users/enums/permission.enum'; import { UserDec } from '../../../common/decorators/user.decorator'; import { AuthGuards } from '../../../common/decorators/auth-guard.decorator'; +import { ITokenPayload } from '../../auth/interfaces/IToken-payload'; @AuthGuards() @AdminRoute() @@ -18,24 +18,6 @@ import { AuthGuards } from '../../../common/decorators/auth-guard.decorator'; export class WorkspaceController { constructor(private readonly workspaceService: WorkspaceService) {} - @Get() - @PermissionsDec(PermissionEnum.WORKSPACE) - @ApiOperation({ summary: 'Get all workspaces' }) - @ApiResponse({ status: 200, description: 'List of workspaces', type: [TMWorkspace] }) - findAll(): Promise { - return this.workspaceService.findAll(); - } - - @Get(':id') - @PermissionsDec(PermissionEnum.WORKSPACE) - @ApiOperation({ summary: 'Get a workspace by ID' }) - @ApiParam({ name: 'id', description: 'Workspace ID' }) - @ApiResponse({ status: 200, description: 'Workspace found', type: TMWorkspace }) - @ApiResponse({ status: 404, description: 'Workspace not found' }) - findOne(@Param('id') id: string): Promise { - return this.workspaceService.findOneOrFail(id); - } - @Post() @PermissionsDec(PermissionEnum.WORKSPACE) @ApiOperation({ summary: 'Create a new workspace' }) @@ -68,7 +50,7 @@ export class WorkspaceController { @ApiOperation({summary: 'Get User WorkSpaces'}) @ApiResponse({ status: 200, description: 'Got Workspaces successfully!' }) @ApiResponse({ status: 404, description: 'Bad Request!' }) - findByUser(@UserDec('id') userId: string) { - return this.workspaceService.findByUser(userId); + findByUser(@UserDec() user: ITokenPayload) { + return this.workspaceService.findByUser(user.id, user.permissions); } } \ No newline at end of file diff --git a/src/modules/task-manager/providers/workspace.service.ts b/src/modules/task-manager/providers/workspace.service.ts index 73940fc..d983d02 100644 --- a/src/modules/task-manager/providers/workspace.service.ts +++ b/src/modules/task-manager/providers/workspace.service.ts @@ -7,6 +7,7 @@ import { CreateWorkspaceDto } from "../dto/workspace/create-workspace.dto"; import { UpdateWorkspaceDto } from "../dto/workspace/update-workspace.dto"; import { User } from "../../users/entities/user.entity"; import { WorkSpaceMessage } from "../../../common/enums/message.enum"; +import { PermissionEnum } from "../../users/enums/permission.enum"; @Injectable() export class WorkspaceService { @@ -68,7 +69,10 @@ export class WorkspaceService { return workspace; } - async findByUser(userId: string): Promise { + async findByUser(userId: string, permissions: PermissionEnum[]): Promise { + if(permissions.includes(PermissionEnum.WORKSPACE)) { + return await this.workspaceRepository.find(); + } return await this.workspaceRepository.findByUser(userId); } } diff --git a/src/modules/users/enums/permission.enum.ts b/src/modules/users/enums/permission.enum.ts index 779f6c9..82043ae 100755 --- a/src/modules/users/enums/permission.enum.ts +++ b/src/modules/users/enums/permission.enum.ts @@ -26,8 +26,10 @@ export enum PermissionEnum { DMAIL = 'dmail', RESELLER="reseller", WORKSPACE="workspace", + VIEW_ALL_WORKSPACES="view_all_workspaces", PROJECT="project", - TASK_PHASE="task_phase", + VIEW_ALL_PROJECTS="view_all_projects", TASK="task", + TASK_PHASE="task_phase", REMARK="remark" }