Skip to content

Commit a2bd44d

Browse files
fix: [UIE-9300] - isIAMEnabled LA access check (linode#12946)
* fix + loading state * Added changeset: IAM - isIAMEnabled LA access check
1 parent 244c693 commit a2bd44d

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Fixed
3+
---
4+
5+
IAM - isIAMEnabled LA access check ([#12946](https://github.com/linode/manager/pull/12946))

packages/manager/src/features/IAM/hooks/useIsIAMEnabled.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ import type { FlagSet } from 'src/featureFlags';
1919
export const useIsIAMEnabled = () => {
2020
const flags = useFlags();
2121
const { data: profile } = useProfile();
22-
const { data: roles } = useAccountRoles(
22+
const { data: roles, isLoading: isLoadingRoles } = useAccountRoles(
2323
flags?.iam?.enabled === true && !profile?.restricted
2424
);
2525

26-
const { data: permissions } = useUserAccountPermissions(
27-
flags?.iam?.enabled === true
28-
);
26+
const { data: permissions, isLoading: isLoadingPermissions } =
27+
useUserAccountPermissions(flags?.iam?.enabled === true);
2928

3029
return {
3130
isIAMBeta: flags.iam?.beta,
32-
isIAMEnabled: flags?.iam?.enabled && Boolean(roles || permissions?.length),
31+
isIAMEnabled: flags?.iam?.enabled && Boolean(roles || permissions),
32+
isLoading: isLoadingRoles || isLoadingPermissions,
3333
};
3434
};
3535

@@ -60,7 +60,7 @@ export const checkIAMEnabled = async (
6060
const permissions = await queryClient.ensureQueryData(
6161
queryOptions(iamQueries.user(profile.username)._ctx.accountPermissions)
6262
);
63-
return Boolean(permissions.length);
63+
return Boolean(permissions);
6464
}
6565

6666
// For non-restricted users ONLY, get roles

packages/manager/src/routes/IAM/IAMRoute.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,18 @@ import { SuspenseLoader } from 'src/components/SuspenseLoader';
88
import { useIsIAMEnabled } from 'src/features/IAM/hooks/useIsIAMEnabled';
99

1010
export const IAMRoute = () => {
11-
const { isIAMEnabled } = useIsIAMEnabled();
11+
const { isIAMEnabled, isLoading } = useIsIAMEnabled();
1212
return (
1313
<React.Suspense fallback={<SuspenseLoader />}>
1414
<DocumentTitleSegment segment="Identity and Access" />
1515
<ProductInformationBanner bannerLocation="Identity and Access" />
16-
{isIAMEnabled ? <Outlet /> : <NotFound />}
16+
{isLoading ? (
17+
<SuspenseLoader />
18+
) : isIAMEnabled ? (
19+
<Outlet />
20+
) : (
21+
<NotFound />
22+
)}
1723
</React.Suspense>
1824
);
1925
};

0 commit comments

Comments
 (0)