diff --git a/libs/common/src/constants/role-permissions.ts b/libs/common/src/constants/role-permissions.ts index 9427034..4f3043d 100644 --- a/libs/common/src/constants/role-permissions.ts +++ b/libs/common/src/constants/role-permissions.ts @@ -9,6 +9,7 @@ export const RolePermissions = { 'DEVICE_BATCH_CONTROL', 'DEVICE_LOCATION_VIEW', 'DEVICE_LOCATION_UPDATE', + 'DEVICE_ADD', 'COMMUNITY_VIEW', 'COMMUNITY_ADD', 'COMMUNITY_UPDATE', @@ -60,6 +61,7 @@ export const RolePermissions = { 'DEVICE_VIEW', 'DEVICE_DELETE', 'DEVICE_UPDATE', + 'DEVICE_ADD', 'DEVICE_BATCH_CONTROL', 'DEVICE_LOCATION_VIEW', 'DEVICE_LOCATION_UPDATE', diff --git a/libs/common/src/modules/device/entities/device.entity.ts b/libs/common/src/modules/device/entities/device.entity.ts index 26d2e96..89c8f23 100644 --- a/libs/common/src/modules/device/entities/device.entity.ts +++ b/libs/common/src/modules/device/entities/device.entity.ts @@ -33,9 +33,6 @@ export class DeviceEntity extends AbstractEntity { }) isActive: boolean; - @ManyToOne(() => UserEntity, (user) => user.userSpaces, { nullable: false }) - user: UserEntity; - @OneToMany( () => DeviceUserPermissionEntity, (permission) => permission.device, diff --git a/libs/common/src/modules/user/entities/user.entity.ts b/libs/common/src/modules/user/entities/user.entity.ts index e63fddf..0dca072 100644 --- a/libs/common/src/modules/user/entities/user.entity.ts +++ b/libs/common/src/modules/user/entities/user.entity.ts @@ -16,7 +16,6 @@ import { } from '../dtos'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { - DeviceEntity, DeviceNotificationEntity, DeviceUserPermissionEntity, } from '../../device/entities'; @@ -98,9 +97,6 @@ export class UserEntity extends AbstractEntity { @OneToMany(() => UserSpaceEntity, (userSpace) => userSpace.user) userSpaces: UserSpaceEntity[]; - @OneToMany(() => DeviceEntity, (userDevice) => userDevice.user) - userDevice: DeviceEntity[]; - @OneToMany( () => UserNotificationEntity, (userNotification) => userNotification.user, diff --git a/src/device/controllers/device.controller.ts b/src/device/controllers/device.controller.ts index 9599e91..50d6e09 100644 --- a/src/device/controllers/device.controller.ts +++ b/src/device/controllers/device.controller.ts @@ -26,7 +26,6 @@ import { GetSceneFourSceneDeviceDto, } from '../dtos/control.device.dto'; import { CheckRoomGuard } from 'src/guards/room.guard'; -import { CheckDeviceGuard } from 'src/guards/device.guard'; import { EnableDisableStatusEnum } from '@app/common/constants/days.enum'; import { CheckFourAndSixSceneDeviceTypeGuard } from 'src/guards/scene.device.type.guard'; import { ControllerRoute } from '@app/common/constants/controller-route'; @@ -104,8 +103,8 @@ export class DeviceController { } @ApiBearerAuth() - @UseGuards(PermissionsGuard, CheckDeviceGuard) - @Permissions('SPACE_DEVICE_ASSIGN_DEVICE_TO_SPACE') + @UseGuards(PermissionsGuard) + @Permissions('DEVICE_ADD') @Post() @ApiOperation({ summary: ControllerRoute.DEVICE.ACTIONS.ADD_DEVICE_SUMMARY, diff --git a/src/device/dtos/add.device.dto.ts b/src/device/dtos/add.device.dto.ts index 6c24851..4801c6a 100644 --- a/src/device/dtos/add.device.dto.ts +++ b/src/device/dtos/add.device.dto.ts @@ -10,6 +10,13 @@ export class AddDeviceDto { @IsString() @IsNotEmpty() public deviceTuyaUuid: string; + @ApiProperty({ + description: 'spaceUuid', + required: true, + }) + @IsString() + @IsNotEmpty() + public spaceUuid: string; } export class AssignDeviceToSpaceDto { @ApiProperty({ diff --git a/src/device/services/device.service.ts b/src/device/services/device.service.ts index 5f71724..4729901 100644 --- a/src/device/services/device.service.ts +++ b/src/device/services/device.service.ts @@ -158,6 +158,7 @@ export class DeviceService { const deviceSaved = await this.deviceRepository.save({ deviceTuyaUuid: addDeviceDto.deviceTuyaUuid, productDevice: { uuid: device.productUuid }, + spaceDevice: { uuid: addDeviceDto.spaceUuid }, }); if (deviceSaved.uuid) { const deviceStatus: BaseResponseDto =