From 35f030645608f9d1f90ea9fd7fda2d5e09671dab Mon Sep 17 00:00:00 2001 From: chan Date: Fri, 12 Jun 2026 18:03:38 +0900 Subject: [PATCH] =?UTF-8?q?adminfront:=20=EA=B6=8C=ED=95=9C=20=EB=B6=80?= =?UTF-8?q?=EC=97=AC(permissions-direct)=20=EB=A9=94=EB=89=B4=20=EB=B0=8F?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=A0=91=EA=B7=BC=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=EC=9D=84=20Super=20Admin=20=EC=A0=84=EC=9A=A9?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9D=BC=EC=A0=9C=20=EC=A0=9C=ED=95=9C=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adminfront/src/components/layout/AppLayout.tsx | 2 +- .../routes/TenantFineGrainedPermissionsPage.tsx | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/adminfront/src/components/layout/AppLayout.tsx b/adminfront/src/components/layout/AppLayout.tsx index 0b44a8c7..92c8d00e 100644 --- a/adminfront/src/components/layout/AppLayout.tsx +++ b/adminfront/src/components/layout/AppLayout.tsx @@ -267,7 +267,7 @@ function AppLayout() { if (item.to === "/auth") return permissions.auth_guard; if (item.to === "/api-keys") return permissions.api_keys; if (item.to === "/audit-logs") return permissions.audit_logs; - if (item.to === "/permissions-direct") return permissions.permissions_direct || _manageableCount > 0; + if (item.to === "/permissions-direct") return false; if (item.to === "/tenants") return permissions.tenants; if (item.to === orgfrontUrl) return permissions.org_chart; if (item.to === "/worksmobile") return permissions.worksmobile && showWorksmobile; diff --git a/adminfront/src/features/tenants/routes/TenantFineGrainedPermissionsPage.tsx b/adminfront/src/features/tenants/routes/TenantFineGrainedPermissionsPage.tsx index 5f4e62c3..8235c7c2 100644 --- a/adminfront/src/features/tenants/routes/TenantFineGrainedPermissionsPage.tsx +++ b/adminfront/src/features/tenants/routes/TenantFineGrainedPermissionsPage.tsx @@ -1,4 +1,5 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { useNavigate } from "react-router-dom"; import type { AxiosError } from "axios"; import { useState, useEffect } from "react"; import { @@ -55,6 +56,7 @@ import { toast } from "../../../components/ui/use-toast"; export function TenantFineGrainedPermissionsPage() { const queryClient = useQueryClient(); + const navigate = useNavigate(); const [activeTab, setActiveTab] = useState<"tenant" | "system">("system"); const [selectedTenantId, setSelectedTenantId] = useState(""); const [searchTerm, setSearchTerm] = useState(""); @@ -72,6 +74,19 @@ export function TenantFineGrainedPermissionsPage() { const isSuperAdmin = profile?.role === "super_admin"; + if (profile && !isSuperAdmin) { + return ( +
+

+ {t("msg.admin.common.forbidden", "접근 권한이 없습니다.")} +

+ +
+ ); + } + const tenantsQuery = useQuery({ queryKey: ["tenants", "list-all"], queryFn: () => fetchAllTenants(),