From f257a7b71a9434ec550a4e6daf2382ee2c3acab7 Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev <45741086+Artuomka@users.noreply.github.com> Date: Tue, 11 Feb 2025 15:44:32 +0200 Subject: [PATCH] Revert "temporary disable primary key structure check" --- .../delete-row-from-table.use.case.ts | 26 +++++++++---------- .../delete-rows-from-table.use.case.ts | 24 ++++++++--------- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/backend/src/entities/table/use-cases/delete-row-from-table.use.case.ts b/backend/src/entities/table/use-cases/delete-row-from-table.use.case.ts index 02435a451..8cd3ef47f 100644 --- a/backend/src/entities/table/use-cases/delete-row-from-table.use.case.ts +++ b/backend/src/entities/table/use-cases/delete-row-from-table.use.case.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ import { HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common'; import AbstractUseCase from '../../../common/abstract-use.case.js'; import { IGlobalDatabaseContext } from '../../../common/application/global-database-context.interface.js'; @@ -85,23 +84,22 @@ export class DeleteRowFromTableUseCase const availablePrimaryColumns: Array = primaryColumns.map((column) => column.column_name); Object.keys(primaryKey).forEach((key) => { - if ( - (!primaryKey[key] && primaryKey[key] !== '') || - (typeof primaryKey[key] === 'object' && !Object.keys(primaryKey[key]).length) - ) { + // eslint-disable-next-line security/detect-object-injection + if (!primaryKey[key] && primaryKey[key] !== '') { + // eslint-disable-next-line security/detect-object-injection delete primaryKey[key]; } }); - // const receivedPrimaryColumns = Object.keys(primaryKey); - // if (!compareArrayElements(availablePrimaryColumns, receivedPrimaryColumns)) { - // throw new HttpException( - // { - // message: Messages.PRIMARY_KEY_INVALID, - // }, - // HttpStatus.BAD_REQUEST, - // ); - // } + const receivedPrimaryColumns = Object.keys(primaryKey); + if (!compareArrayElements(availablePrimaryColumns, receivedPrimaryColumns)) { + throw new HttpException( + { + message: Messages.PRIMARY_KEY_INVALID, + }, + HttpStatus.BAD_REQUEST, + ); + } const tableSettings = await this._dbContext.tableSettingsRepository.findTableSettings(connectionId, tableName); if (tableSettings && !tableSettings?.can_delete) { diff --git a/backend/src/entities/table/use-cases/delete-rows-from-table.use.case.ts b/backend/src/entities/table/use-cases/delete-rows-from-table.use.case.ts index 315184358..8480381b0 100644 --- a/backend/src/entities/table/use-cases/delete-rows-from-table.use.case.ts +++ b/backend/src/entities/table/use-cases/delete-rows-from-table.use.case.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ import { HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common'; import AbstractUseCase from '../../../common/abstract-use.case.js'; import { IGlobalDatabaseContext } from '../../../common/application/global-database-context.interface.js'; @@ -97,23 +96,22 @@ export class DeleteRowsFromTableUseCase primaryKeys.forEach((primaryKey) => { Object.keys(primaryKey).forEach((key) => { - if ( - (!primaryKey[key] && primaryKey[key] !== '') || - (typeof primaryKey[key] === 'object' && !Object.keys(primaryKey[key]).length) - ) { + // eslint-disable-next-line security/detect-object-injection + if (!primaryKey[key] && primaryKey[key] !== '') { + // eslint-disable-next-line security/detect-object-injection delete primaryKey[key]; } }); const receivedPrimaryColumns = Object.keys(primaryKey); - // if (!compareArrayElements(availablePrimaryColumns, receivedPrimaryColumns)) { - // throw new HttpException( - // { - // message: Messages.PRIMARY_KEY_INVALID, - // }, - // HttpStatus.BAD_REQUEST, - // ); - // } + if (!compareArrayElements(availablePrimaryColumns, receivedPrimaryColumns)) { + throw new HttpException( + { + message: Messages.PRIMARY_KEY_INVALID, + }, + HttpStatus.BAD_REQUEST, + ); + } }); let oldRowsData: Array>;