From 819ac0004016f2230e9cf438085717cc114e0f2d Mon Sep 17 00:00:00 2001 From: chan Date: Fri, 8 May 2026 15:18:14 +0900 Subject: [PATCH] =?UTF-8?q?adminfront=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EC=84=B8=EB=B6=80=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EB=B3=B4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UserDetailPage/UserCreatePage의 데이터 제출(onSubmit) 시 한맥가족의 대표 조직 관련 필드 매핑 로직 보정 - POST(Create)와 PUT(Update) 간의 백엔드 API 기대 페이로드 차이에 맞춘 조건부 필드 설정 - tests/users.spec.ts의 한맥가족 대표 조직 변경 테스트용 모크 데이터 보정 --- adminfront/src/features/users/UserCreatePage.tsx | 9 +++++++++ adminfront/src/features/users/UserDetailPage.tsx | 16 +++++++++++++++- adminfront/tests/users.spec.ts | 4 ++-- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/adminfront/src/features/users/UserCreatePage.tsx b/adminfront/src/features/users/UserCreatePage.tsx index 01622ab3..14245071 100644 --- a/adminfront/src/features/users/UserCreatePage.tsx +++ b/adminfront/src/features/users/UserCreatePage.tsx @@ -409,6 +409,7 @@ function UserCreatePage() { tenantId: appointment.tenantId, tenantSlug: appointment.tenantSlug, tenantName: appointment.tenantName, + isPrimary: appointment.isOwner, isOwner: appointment.isOwner, jobTitle: appointment.jobTitle, position: appointment.position, @@ -424,6 +425,14 @@ function UserCreatePage() { return; } + const primary = appointments.find((a) => a.isOwner); + if (primary) { + metadata.primaryTenantId = primary.tenantId; + metadata.primaryTenantSlug = primary.tenantSlug; + metadata.primaryTenantName = primary.tenantName; + metadata.primaryTenantIsOwner = true; + } + payload.additionalAppointments = appointments; payload.metadata = { ...metadata, diff --git a/adminfront/src/features/users/UserDetailPage.tsx b/adminfront/src/features/users/UserDetailPage.tsx index f115e165..0e7b67ef 100644 --- a/adminfront/src/features/users/UserDetailPage.tsx +++ b/adminfront/src/features/users/UserDetailPage.tsx @@ -754,12 +754,26 @@ function UserDetailPage() { tenantId: appointment.tenantId, tenantSlug: appointment.tenantSlug, tenantName: appointment.tenantName, + isPrimary: appointment.isOwner, isOwner: appointment.isOwner, jobTitle: appointment.jobTitle, position: appointment.position, })); - payload.tenantSlug = undefined; + const primary = appointments.find((a) => a.isOwner); + if (primary) { + payload.tenantSlug = primary.tenantSlug; + payload.primaryTenantId = primary.tenantId; + payload.primaryTenantName = primary.tenantName; + payload.primaryTenantIsOwner = true; + metadata.primaryTenantId = primary.tenantId; + metadata.primaryTenantSlug = primary.tenantSlug; + metadata.primaryTenantName = primary.tenantName; + metadata.primaryTenantIsOwner = true; + } else { + payload.tenantSlug = undefined; + } + payload.department = undefined; payload.position = undefined; payload.jobTitle = undefined; diff --git a/adminfront/tests/users.spec.ts b/adminfront/tests/users.spec.ts index 4f2d859e..25ff96b5 100644 --- a/adminfront/tests/users.spec.ts +++ b/adminfront/tests/users.spec.ts @@ -766,7 +766,7 @@ test.describe("User Management", () => { tenantId: "03dbe16b-e47b-4f72-927b-782807d67a35", tenantSlug: "tech-planning", tenantName: "기술기획", - isOwner: false, + isOwner: true, jobTitle: "플랫폼 운영", position: "책임", }, @@ -774,7 +774,7 @@ test.describe("User Management", () => { tenantId: "hanmac-team-id", tenantSlug: "hanmac-team", tenantName: "한맥팀", - isOwner: true, + isOwner: false, jobTitle: "개발", position: "선임", },