From 311e49168345d0238fcbed883ce50c260a86427b Mon Sep 17 00:00:00 2001 From: chan Date: Tue, 24 Mar 2026 16:33:01 +0900 Subject: [PATCH] =?UTF-8?q?=EB=88=84=EB=9D=BD=EB=90=9C=20=ED=82=A4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80:=20=ED=85=8C=EB=84=8C=ED=8A=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=ED=99=94=EB=A9=B4=EC=97=90=20=EC=83=88=EB=A1=AD?= =?UTF-8?q?=EA=B2=8C=20=EC=B6=94=EA=B0=80=ED=95=9C=20'=EC=83=81=EC=9C=84?= =?UTF-8?q?=20=ED=85=8C=EB=84=8C=ED=8A=B8'=20=EA=B4=80=EB=A0=A8=20UI=20?= =?UTF-8?q?=ED=82=A4=202=EC=A2=85=EC=9D=84=20=EB=A1=9C=EC=BB=AC=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=ED=8C=8C=EC=9D=BC=EC=97=90=20=EB=B0=98?= =?UTF-8?q?=EC=98=81=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../routes/TenantUserGroupsTab.tsx | 4 +- .../routes/UserGroupDetailPage.tsx | 2 +- .../src/features/users/UserCreatePage.tsx | 7 +- .../src/features/users/UserDetailPage.tsx | 21 +- .../components/UserBulkMoveGroupModal.tsx | 2 +- .../features/users/utils/csvParser.test.ts | 2 +- backend/internal/handler/user_handler.go | 14 +- backend/internal/handler/user_handler_test.go | 26 +- locales/en.toml | 2655 ++++++++--------- locales/ko.toml | 2649 ++++++++-------- locales/template.toml | 2649 ++++++++-------- 11 files changed, 3986 insertions(+), 4045 deletions(-) diff --git a/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx b/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx index d56de894..6d7c7837 100644 --- a/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx +++ b/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx @@ -776,7 +776,9 @@ const TenantTreeRow: React.FC<{ if (node.type === "USER_GROUP") { // User groups have a different detail path const baseTenantId = - (node as any).tenantId || (node as any).parentId || ""; + (node as unknown as { tenantId?: string }).tenantId || + node.parentId || + ""; navigate(`/tenants/${baseTenantId}/organization/${node.id}`); } else { navigate(`/tenants/${node.id}`); diff --git a/adminfront/src/features/user-groups/routes/UserGroupDetailPage.tsx b/adminfront/src/features/user-groups/routes/UserGroupDetailPage.tsx index 252938aa..f2104737 100644 --- a/adminfront/src/features/user-groups/routes/UserGroupDetailPage.tsx +++ b/adminfront/src/features/user-groups/routes/UserGroupDetailPage.tsx @@ -189,7 +189,7 @@ export function UserGroupDetailPage() {

Error:{" "} {(error as AxiosError<{ error?: string }>)?.response?.data?.error || - (error as any)?.message || + (error instanceof Error ? error.message : String(error)) || "Not found"}

diff --git a/adminfront/src/features/users/UserCreatePage.tsx b/adminfront/src/features/users/UserCreatePage.tsx index e97b3296..a29d6367 100644 --- a/adminfront/src/features/users/UserCreatePage.tsx +++ b/adminfront/src/features/users/UserCreatePage.tsx @@ -79,9 +79,8 @@ function UserCreatePage() { // Lock company for tenant_admin React.useEffect(() => { - const p = profile as any; - if (p?.role === "tenant_admin" && p.tenantSlug) { - setValue("tenantSlug", p.tenantSlug); + if (profile?.role === "tenant_admin" && profile.tenantSlug) { + setValue("tenantSlug", profile.tenantSlug); } }, [profile, setValue]); @@ -362,7 +361,7 @@ function UserCreatePage() { id="tenantSlug" className="flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50" {...register("tenantSlug")} - disabled={(profile as any)?.role === "tenant_admin"} + disabled={profile?.role === "tenant_admin"} >