1
0
forked from baron/baron-sso

devfront 테넌트 미소속 개발자 신청 안내 추가

This commit is contained in:
2026-06-08 13:52:40 +09:00
parent 894feb20f1
commit 41e755b1c7
11 changed files with 228 additions and 22 deletions

View File

@@ -9,12 +9,16 @@ export type DeveloperAccessGateState = {
isDeveloperRequestPending: boolean;
canRequestDeveloperAccess: boolean;
isLoadingDeveloperAccessGate: boolean;
isTenantContextMissing: boolean;
};
export function resolveDeveloperAccessGate(
profileRole: string,
requestStatus?: DeveloperRequestStatus,
): Omit<DeveloperAccessGateState, "isLoadingDeveloperAccessGate"> {
): Omit<
DeveloperAccessGateState,
"isLoadingDeveloperAccessGate" | "isTenantContextMissing"
> {
const hasDeveloperAccess =
profileRole === "super_admin" || requestStatus === "approved";
const isDeveloperRequestPending = requestStatus === "pending";
@@ -55,10 +59,12 @@ export function useDeveloperAccessGate({
}) {
const shouldFetchRequestStatus =
shouldFetchDeveloperRequestStatus(profileRole);
const isTenantContextMissing = !tenantId?.trim();
const { data: requestStatus, isLoading: isLoadingRequestStatus } = useQuery({
queryKey: ["developer-request", tenantId],
queryFn: () => fetchDeveloperRequestStatus(tenantId),
enabled: hasAccessToken && shouldFetchRequestStatus,
enabled:
hasAccessToken && shouldFetchRequestStatus && !isTenantContextMissing,
});
const resolvedGate = resolveDeveloperAccessGate(
@@ -68,6 +74,9 @@ export function useDeveloperAccessGate({
return {
...resolvedGate,
isTenantContextMissing,
canRequestDeveloperAccess:
resolvedGate.canRequestDeveloperAccess && !isTenantContextMissing,
isLoadingDeveloperAccessGate: shouldShowDeveloperAccessLoading(
profileRole,
isLoadingIdentity,