import { SpacePermissionService } from '@app/common/helper/services/space.permission.service'; import { BadRequestException, CanActivate, ExecutionContext, Injectable, } from '@nestjs/common'; @Injectable() export class RoomPermissionGuard implements CanActivate { constructor(private readonly permissionService: SpacePermissionService) {} async canActivate(context: ExecutionContext): Promise { const req = context.switchToHttp().getRequest(); try { const { roomUuid } = req.params; const { user } = req; if (!roomUuid) { throw new BadRequestException('roomUuid is required'); } await this.permissionService.checkUserPermission( roomUuid, user.uuid, 'room', ); return true; } catch (error) { throw error; } } }