diff --git a/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx b/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx
index 7b4fefa3..113d8573 100644
--- a/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx
+++ b/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx
@@ -56,41 +56,10 @@ export function TenantSchemaPage() {
const canAccess =
profile?.role === "super_admin" || profile?.role === "tenant_admin";
- if (isProfileLoading) {
- return (
-
- {t("msg.common.loading", "로딩 중...")}
-
- );
- }
-
- if (!canAccess) {
- return (
-
-
- {t("msg.common.forbidden", "접근 권한이 없습니다.")}
-
-
- {t(
- "msg.admin.tenants.schema.forbidden_desc",
- "사용자 스키마 설정은 관리자만 접근할 수 있습니다.",
- )}
-
-
- );
- }
-
- if (!tenantId) {
- return (
-
- {t("msg.admin.tenants.schema.missing_id", "테넌트 ID가 없습니다.")}
-
- );
- }
-
const tenantQuery = useQuery({
queryKey: ["tenant", tenantId],
- queryFn: () => fetchTenant(tenantId),
+ queryFn: () => fetchTenant(tenantId!),
+ enabled: !!tenantId && canAccess,
});
const [fields, setFields] = useState([]);
@@ -130,7 +99,7 @@ export function TenantSchemaPage() {
newConfig.loginIdField = undefined;
newConfig.userSchema = newFields;
- return updateTenant(tenantId, {
+ return updateTenant(tenantId!, {
config: newConfig,
});
},
@@ -151,6 +120,38 @@ export function TenantSchemaPage() {
},
});
+ if (isProfileLoading) {
+ return (
+
+ {t("msg.common.loading", "로딩 중...")}
+
+ );
+ }
+
+ if (!canAccess) {
+ return (
+
+
+ {t("msg.common.forbidden", "접근 권한이 없습니다.")}
+
+
+ {t(
+ "msg.admin.tenants.schema.forbidden_desc",
+ "사용자 스키마 설정은 관리자만 접근할 수 있습니다.",
+ )}
+
+
+ );
+ }
+
+ if (!tenantId) {
+ return (
+
+ {t("msg.admin.tenants.schema.missing_id", "테넌트 ID가 없습니다.")}
+
+ );
+ }
+
const addField = () => {
setFields([
...fields,