diff --git a/packages/manager/.changeset/pr-12946-fixed-1759415335272.md b/packages/manager/.changeset/pr-12946-fixed-1759415335272.md
new file mode 100644
index 00000000000..2a683e7cc14
--- /dev/null
+++ b/packages/manager/.changeset/pr-12946-fixed-1759415335272.md
@@ -0,0 +1,5 @@
+---
+"@linode/manager": Fixed
+---
+
+IAM - isIAMEnabled LA access check ([#12946](https://github.com/linode/manager/pull/12946))
diff --git a/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts b/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts
index 7cd61bf8280..c7e17fc8682 100644
--- a/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts
+++ b/packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts
@@ -19,17 +19,17 @@ import type { FlagSet } from 'src/featureFlags';
export const useIsIAMEnabled = () => {
const flags = useFlags();
const { data: profile } = useProfile();
- const { data: roles } = useAccountRoles(
+ const { data: roles, isLoading: isLoadingRoles } = useAccountRoles(
flags?.iam?.enabled === true && !profile?.restricted
);
- const { data: permissions } = useUserAccountPermissions(
- flags?.iam?.enabled === true
- );
+ const { data: permissions, isLoading: isLoadingPermissions } =
+ useUserAccountPermissions(flags?.iam?.enabled === true);
return {
isIAMBeta: flags.iam?.beta,
- isIAMEnabled: flags?.iam?.enabled && Boolean(roles || permissions?.length),
+ isIAMEnabled: flags?.iam?.enabled && Boolean(roles || permissions),
+ isLoading: isLoadingRoles || isLoadingPermissions,
};
};
@@ -60,7 +60,7 @@ export const checkIAMEnabled = async (
const permissions = await queryClient.ensureQueryData(
queryOptions(iamQueries.user(profile.username)._ctx.accountPermissions)
);
- return Boolean(permissions.length);
+ return Boolean(permissions);
}
// For non-restricted users ONLY, get roles
diff --git a/packages/manager/src/routes/IAM/IAMRoute.tsx b/packages/manager/src/routes/IAM/IAMRoute.tsx
index 86627b93f1f..9c432c9ffa0 100644
--- a/packages/manager/src/routes/IAM/IAMRoute.tsx
+++ b/packages/manager/src/routes/IAM/IAMRoute.tsx
@@ -8,12 +8,18 @@ import { SuspenseLoader } from 'src/components/SuspenseLoader';
import { useIsIAMEnabled } from 'src/features/IAM/hooks/useIsIAMEnabled';
export const IAMRoute = () => {
- const { isIAMEnabled } = useIsIAMEnabled();
+ const { isIAMEnabled, isLoading } = useIsIAMEnabled();
return (
}>
- {isIAMEnabled ? : }
+ {isLoading ? (
+
+ ) : isIAMEnabled ? (
+
+ ) : (
+
+ )}
);
};