-
- {t("ui.admin.auth_guard.title", "Auth Guard")}
+
+
+
+
+ {t("ui.admin.auth_guard.title", "Auth Guard")}
{t(
diff --git a/adminfront/src/features/auth/components/PermissionChecker.tsx b/adminfront/src/features/auth/components/PermissionChecker.tsx
index 2be914f1..c8dbba7b 100644
--- a/adminfront/src/features/auth/components/PermissionChecker.tsx
+++ b/adminfront/src/features/auth/components/PermissionChecker.tsx
@@ -1,5 +1,5 @@
import { useMutation } from "@tanstack/react-query";
-import { CheckCircle2, XCircle } from "lucide-react";
+import { CheckCircle2, ShieldCheck, XCircle } from "lucide-react";
import { useState } from "react";
import { Button } from "../../../components/ui/button";
import {
@@ -47,7 +47,10 @@ function PermissionChecker() {
return (
-
+
+
+
+
{t(
"ui.admin.auth_guard.checker.title",
"ReBAC permission checker",
diff --git a/adminfront/src/features/integrity/DataIntegrityPage.tsx b/adminfront/src/features/integrity/DataIntegrityPage.tsx
index bd8988df..7f449d28 100644
--- a/adminfront/src/features/integrity/DataIntegrityPage.tsx
+++ b/adminfront/src/features/integrity/DataIntegrityPage.tsx
@@ -90,6 +90,23 @@ function integritySectionLabel(key: string, fallback: string) {
}
}
+function integritySectionDescription(key: string) {
+ switch (key) {
+ case "tenant_integrity":
+ return t(
+ "msg.admin.integrity.section.tenant_integrity.description",
+ "테넌트 slug 중복과 부모 관계 이상을 확인합니다.",
+ );
+ case "user_integrity":
+ return t(
+ "msg.admin.integrity.section.user_integrity.description",
+ "사용자와 로그인 ID 참조의 고아 레코드를 확인합니다.",
+ );
+ default:
+ return "";
+ }
+}
+
function integrityCheckLabel(key: string, fallback: string) {
switch (key) {
case "duplicate_tenant_slugs":
@@ -327,16 +344,21 @@ function DataIntegrityContent() {
return (