Update device permission guard and user device permission service

This commit is contained in:
faris Aljohari
2024-05-05 18:40:44 +03:00
parent 11c3b8015b
commit 5e3ad8a523
3 changed files with 15 additions and 15 deletions

View File

@ -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}`,
);

View File

@ -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();
}
}

View File

@ -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,
],