From 4d5b010cbcfe5cf03a4050789ed77e1fa579c1b7 Mon Sep 17 00:00:00 2001 From: chan Date: Fri, 12 Jun 2026 19:50:45 +0900 Subject: [PATCH] =?UTF-8?q?adminfront:=20UserCreatePage=20=EB=B0=8F=20User?= =?UTF-8?q?DetailPage=EC=97=90=20=EC=84=B8=EB=B6=80=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EA=B6=8C=ED=95=9C(users=20/=20manage=5Fusers)=20=EC=97=B0?= =?UTF-8?q?=EB=8F=99=20=EC=A0=81=EC=9A=A9=ED=95=98=EC=97=AC=20=EC=A0=91?= =?UTF-8?q?=EA=B7=BC=20=EC=A0=9C=ED=95=9C=20=EB=B2=84=EA=B7=B8=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/features/users/UserCreatePage.tsx | 2 +- .../src/features/users/UserDetailPage.tsx | 38 ++++++++++--------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/adminfront/src/features/users/UserCreatePage.tsx b/adminfront/src/features/users/UserCreatePage.tsx index e17785bd..e0d70f18 100644 --- a/adminfront/src/features/users/UserCreatePage.tsx +++ b/adminfront/src/features/users/UserCreatePage.tsx @@ -158,7 +158,7 @@ function UserCreatePage() { queryFn: fetchMe, }); const profileRole = normalizeAdminRole(profile?.role); - const canManageUsers = canManageTenantScopedUsers(profile); + const canManageUsers = canManageTenantScopedUsers(profile) || !!profile?.systemPermissions?.manage_users; const { register, diff --git a/adminfront/src/features/users/UserDetailPage.tsx b/adminfront/src/features/users/UserDetailPage.tsx index 8248d35b..ebf50926 100644 --- a/adminfront/src/features/users/UserDetailPage.tsx +++ b/adminfront/src/features/users/UserDetailPage.tsx @@ -578,6 +578,8 @@ function UserDetailPage() { const isAdmin = profileRole === "super_admin"; const isSelf = Boolean(profile?.id && user?.id && profile.id === user.id); const canManageCurrentUser = canManageUserInTenantScope({ profile, user }); + const isWritable = isAdmin || isSelf || canManageCurrentUser || !!profile?.systemPermissions?.manage_users; + const canViewUser = isAdmin || isSelf || canManageCurrentUser || !!profile?.systemPermissions?.users || !!profile?.systemPermissions?.manage_users; const watchedStatus = watch("status"); const [newSubEmail, setNewSubEmail] = React.useState(""); @@ -1138,7 +1140,7 @@ function UserDetailPage() { ); } - if (!isAdmin && !isSelf && !canManageCurrentUser) { + if (profile && !canViewUser) { return (
@@ -1847,22 +1849,24 @@ function UserDetailPage() { -
- -
+ {isWritable && ( +
+ +
+ )}