diff --git a/packages/cli/src/PublicApi/helpers.ts b/packages/cli/src/PublicApi/helpers.ts index 4d59970dfb..27a001367b 100644 --- a/packages/cli/src/PublicApi/helpers.ts +++ b/packages/cli/src/PublicApi/helpers.ts @@ -6,8 +6,6 @@ import express = require('express'); import * as SwaggerParser from '@apidevtools/swagger-parser'; import { In } from 'typeorm'; import { validate as uuidValidate } from 'uuid'; -import { Workflow } from 'n8n-workflow'; -import { worker } from 'cluster'; import { User } from '../databases/entities/User'; import type { Role } from '../databases/entities/Role'; import { ActiveWorkflowRunner, Db, InternalHooksManager, ITelemetryUserDeletionData } from '..'; @@ -71,12 +69,6 @@ export const connectionName = (): string => { return 'default'; }; -export const clean = (users: User[], options?: { includeRole: boolean }): Array> => { - return users.map((user) => - pick(user, getSelectableProperties('user').concat(options?.includeRole ? ['globalRole'] : [])), - ); -}; - const middlewareDefined = (operationId: OperationID, middlewares: IMiddlewares) => operationId && middlewares[operationId]; @@ -344,3 +336,24 @@ export async function deleteDataAndSendTelemetry(data: { await deleteWorkflowsAndCredentials(data); await sendUserDeleteTelemetry(data); } + +export function clean(user: User, options?: { includeRole: boolean }): Partial; +export function clean(users: User[], options?: { includeRole: boolean }): Array>; + +export function clean( + users: User[] | User, + options?: { includeRole: boolean }, +): Array> | Partial { + if (Array.isArray(users)) { + return users.map((user) => + pick( + user, + getSelectableProperties('user').concat(options?.includeRole ? ['globalRole'] : []), + ), + ); + } + return pick( + users, + getSelectableProperties('user').concat(options?.includeRole ? ['globalRole'] : []), + ); +} diff --git a/packages/cli/src/PublicApi/v1/routes/Users/index.ts b/packages/cli/src/PublicApi/v1/routes/Users/index.ts index 9fd36e36f7..543a1d41ae 100644 --- a/packages/cli/src/PublicApi/v1/routes/Users/index.ts +++ b/packages/cli/src/PublicApi/v1/routes/Users/index.ts @@ -100,7 +100,7 @@ export = { toUser: transferee, }); - return clean([userToDelete]).pop(); + return clean(userToDelete); } await deleteDataAndSendTelemetry({ @@ -109,7 +109,7 @@ export = { transferId, }); - return clean([userToDelete], { includeRole }).pop(); + return clean(userToDelete); }, // eslint-disable-next-line consistent-return getUser: async (req: UserRequest.Get, res: express.Response): Promise => {