forked from baron/baron-sso
devfront 테넌트 미소속 개발자 신청 안내 추가
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user