1
0
forked from baron/baron-sso

개요 차단 화면에 개발자 권한 신청 버튼 추가

This commit is contained in:
2026-05-26 15:50:39 +09:00
parent 7fe86e8aa4
commit 6512fea8fe
3 changed files with 53 additions and 9 deletions

View File

@@ -27,6 +27,7 @@ import {
} from "../../lib/devApi";
import { t } from "../../lib/i18n";
import { resolveProfileRole } from "../../lib/role";
import { fetchMe } from "../auth/authApi";
type ClientDistribution = {
activeClients: number;
@@ -480,13 +481,19 @@ function GlobalOverviewPage() {
const userProfile = auth.user?.profile as Record<string, unknown> | undefined;
const role = resolveProfileRole(userProfile);
const tenantId = userProfile?.tenant_id as string | undefined;
const { data: me, isLoading: isLoadingMe } = useQuery({
queryKey: ["userMe"],
queryFn: fetchMe,
enabled: hasAccessToken,
});
const profileRole = me?.role?.trim() || role;
const [period, setPeriod] = useState<RPUsagePeriod>("day");
const [selectedClientIds, setSelectedClientIds] = useState<string[]>([]);
const usageDays = period === "day" ? 14 : period === "week" ? 84 : 90;
const { data: requestStatus, isLoading: isLoadingRequestStatus } = useQuery({
queryKey: ["developer-request", tenantId],
queryFn: () => fetchDeveloperRequestStatus(tenantId),
enabled: hasAccessToken && role === "user",
enabled: hasAccessToken && profileRole === "user",
});
const statsQuery = useQuery({
queryKey: ["dev-dashboard-stats"],
@@ -510,13 +517,13 @@ function GlobalOverviewPage() {
const clients = clientsQuery.data?.items ?? [];
const hasDeveloperAccess =
role === "super_admin" ||
role === "tenant_admin" ||
role === "rp_admin" ||
profileRole === "super_admin" ||
profileRole === "tenant_admin" ||
profileRole === "rp_admin" ||
requestStatus?.status === "approved";
const isDeveloperRequestPending = requestStatus?.status === "pending";
const canRequestDeveloperAccess =
(role === "user" || role === "tenant_member") &&
(profileRole === "user" || profileRole === "tenant_member") &&
!isLoadingRequestStatus &&
!hasDeveloperAccess &&
!isDeveloperRequestPending;
@@ -607,7 +614,10 @@ function GlobalOverviewPage() {
setSelectedClientIds([]);
};
if ((role === "user" || role === "tenant_member") && isLoadingRequestStatus) {
if (
(profileRole === "user" || profileRole === "tenant_member") &&
(isLoadingMe || isLoadingRequestStatus)
) {
return (
<div className="p-8 text-center">
{t("ui.common.loading", "Loading...")}
@@ -650,9 +660,7 @@ function GlobalOverviewPage() {
className="font-bold text-primary hover:underline"
onClick={() => navigate("/developer-requests")}
>
{isDeveloperRequestPending
? t("ui.dev.nav.developer_request", "개발자 권한 신청")
: t("ui.dev.welcome.btn_request", "개발자 등록 신청하기")}
{t("ui.dev.nav.developer_request", "개발자 권한 신청")}
</button>
)}
</div>