mirror of
https://github.com/SyncrowIOT/backend.git
synced 2026-03-11 09:51:44 +00:00
Update device permission guard and user device permission service
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import { PermissionType } from '@app/common/constants/permission-type.enum';
|
||||
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
||||
import { DeviceUserTypeRepository } from '@app/common/modules/device/repositories';
|
||||
import { DeviceUserPermissionRepository } from '@app/common/modules/device-user-permission/repositories';
|
||||
import { PermissionTypeRepository } from '@app/common/modules/permission/repositories';
|
||||
import {
|
||||
Injectable,
|
||||
@ -18,7 +18,7 @@ import { Reflector } from '@nestjs/core';
|
||||
export class DevicePermissionGuard implements CanActivate {
|
||||
constructor(
|
||||
private reflector: Reflector,
|
||||
private readonly deviceUserTypeRepository: DeviceUserTypeRepository,
|
||||
private readonly deviceUserPermissionRepository: DeviceUserPermissionRepository,
|
||||
private readonly permissionTypeRepository: PermissionTypeRepository,
|
||||
) {}
|
||||
|
||||
@ -52,7 +52,7 @@ export class DevicePermissionGuard implements CanActivate {
|
||||
requirePermission,
|
||||
) {
|
||||
const [userPermissionDetails, permissionDetails] = await Promise.all([
|
||||
this.deviceUserTypeRepository.findOne({
|
||||
this.deviceUserPermissionRepository.findOne({
|
||||
where: { deviceUuid: deviceId, userUuid: userId },
|
||||
}),
|
||||
this.permissionTypeRepository.findOne({
|
||||
@ -64,7 +64,7 @@ export class DevicePermissionGuard implements CanActivate {
|
||||
if (!userPermissionDetails) {
|
||||
throw new BadRequestException('User Permission Details Not Found');
|
||||
}
|
||||
if (userPermissionDetails.permissionTypeUuid !== permissionDetails.uuid) {
|
||||
if (userPermissionDetails.permissionType.uuid !== permissionDetails.uuid) {
|
||||
throw new BadRequestException(
|
||||
`User Does not have a ${requirePermission}`,
|
||||
);
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
import { DeviceUserTypeRepository } from '@app/common/modules/device/repositories';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { UserDevicePermissionAddDto } from '../dtos/user-device-permission.add.dto';
|
||||
import { UserDevicePermissionEditDto } from '../dtos/user-device-permission.edit.dto';
|
||||
import { DeviceUserPermissionRepository } from '@app/common/modules/device-user-permission/repositories';
|
||||
|
||||
@Injectable()
|
||||
export class UserDevicePermissionService {
|
||||
constructor(
|
||||
private readonly deviceUserTypeRepository: DeviceUserTypeRepository,
|
||||
private readonly deviceUserPermissionRepository: DeviceUserPermissionRepository,
|
||||
) {}
|
||||
|
||||
async addUserPermission(userDevicePermissionDto: UserDevicePermissionAddDto) {
|
||||
return await this.deviceUserTypeRepository.save({
|
||||
return await this.deviceUserPermissionRepository.save({
|
||||
userUuid: userDevicePermissionDto.userId,
|
||||
deviceUuid: userDevicePermissionDto.deviceId,
|
||||
permissionTypeUuid: userDevicePermissionDto.permissionTypeId,
|
||||
@ -21,16 +21,18 @@ export class UserDevicePermissionService {
|
||||
userId: string,
|
||||
userDevicePermissionEditDto: UserDevicePermissionEditDto,
|
||||
) {
|
||||
return await this.deviceUserTypeRepository.update(
|
||||
return await this.deviceUserPermissionRepository.update(
|
||||
{ userUuid: userId },
|
||||
{
|
||||
deviceUuid: userDevicePermissionEditDto.deviceId,
|
||||
permissionTypeUuid: userDevicePermissionEditDto.permissionTypeId,
|
||||
permissionType: {
|
||||
uuid: userDevicePermissionEditDto.permissionTypeId,
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async fetchuserPermission() {
|
||||
return await this.deviceUserTypeRepository.find();
|
||||
return await this.deviceUserPermissionRepository.find();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,16 @@
|
||||
import { DeviceRepositoryModule } from '@app/common/modules/device';
|
||||
import {
|
||||
DeviceRepository,
|
||||
DeviceUserTypeRepository,
|
||||
} from '@app/common/modules/device/repositories';
|
||||
import { DeviceRepository } from '@app/common/modules/device/repositories';
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ConfigModule } from '@nestjs/config';
|
||||
import { UserDevicePermissionService } from './services/user-device-permission.service';
|
||||
import { UserDevicePermissionController } from './controllers/user-device-permission.controller';
|
||||
import { DeviceUserPermissionRepository } from '@app/common/modules/device-user-permission/repositories';
|
||||
|
||||
@Module({
|
||||
imports: [ConfigModule, DeviceRepositoryModule],
|
||||
controllers: [UserDevicePermissionController],
|
||||
providers: [
|
||||
DeviceUserTypeRepository,
|
||||
DeviceUserPermissionRepository,
|
||||
DeviceRepository,
|
||||
UserDevicePermissionService,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user