From a2d16f4b78702a662de28377391ae0478dc60c20 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Fri, 17 Jan 2025 06:16:52 +0000 Subject: [PATCH] refactor(server): use workspace model on user model (#9726) --- .../server/src/__tests__/models/user.spec.ts | 4 +++- packages/backend/server/src/models/user.ts | 14 ++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/backend/server/src/__tests__/models/user.spec.ts b/packages/backend/server/src/__tests__/models/user.spec.ts index 5d4730ed4..1ff71207e 100644 --- a/packages/backend/server/src/__tests__/models/user.spec.ts +++ b/packages/backend/server/src/__tests__/models/user.spec.ts @@ -5,8 +5,9 @@ import ava, { TestFn } from 'ava'; import Sinon from 'sinon'; import { EmailAlreadyUsed } from '../../base'; -import { Permission } from '../../core/permission'; +import { Permission } from '../../models/common'; import { UserModel } from '../../models/user'; +import { WorkspaceMemberStatus } from '../../models/workspace'; import { createTestingModule, initTestingDB } from '../utils'; interface Context { @@ -264,6 +265,7 @@ test('should trigger user.deleted event', async t => { }, }, type: Permission.Owner, + status: WorkspaceMemberStatus.Accepted, }, }, }); diff --git a/packages/backend/server/src/models/user.ts b/packages/backend/server/src/models/user.ts index 281cd1e47..4c97a44a0 100644 --- a/packages/backend/server/src/models/user.ts +++ b/packages/backend/server/src/models/user.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { Prisma, type User, Workspace } from '@prisma/client'; +import { Prisma, type User } from '@prisma/client'; import { pick } from 'lodash-es'; import { @@ -12,9 +12,9 @@ import { WrongSignInMethod, } from '../base'; import type { Payload } from '../base/event/def'; -import { Permission } from '../core/permission'; import { Quota_FreePlanV1_1 } from '../core/quota/schema'; import { BaseModel } from './base'; +import type { Workspace } from './workspace'; const publicUserSelect = { id: true, @@ -219,18 +219,12 @@ export class UserModel extends BaseModel { } async delete(id: string) { - const ownedWorkspaces = await this.db.workspaceUserPermission.findMany({ - where: { - userId: id, - type: Permission.Owner, - }, - }); - + const ownedWorkspaceIds = await this.models.workspace.findOwnedIds(id); const user = await this.db.user.delete({ where: { id } }); this.event.emit('user.deleted', { ...user, - ownedWorkspaces: ownedWorkspaces.map(w => w.workspaceId), + ownedWorkspaces: ownedWorkspaceIds, }); return user;