diff --git a/packages/manager/.changeset/pr-12617-upcoming-features-1754321494449.md b/packages/manager/.changeset/pr-12617-upcoming-features-1754321494449.md
new file mode 100644
index 00000000000..99fbc54749e
--- /dev/null
+++ b/packages/manager/.changeset/pr-12617-upcoming-features-1754321494449.md
@@ -0,0 +1,5 @@
+---
+"@linode/manager": Upcoming Features
+---
+
+Update the usePermissions hook to return consistent with the other queries ([#12617](https://github.com/linode/manager/pull/12617))
diff --git a/packages/manager/src/components/ActionMenu/ActionMenu.tsx b/packages/manager/src/components/ActionMenu/ActionMenu.tsx
index c51f734de97..c7d334871aa 100644
--- a/packages/manager/src/components/ActionMenu/ActionMenu.tsx
+++ b/packages/manager/src/components/ActionMenu/ActionMenu.tsx
@@ -1,4 +1,4 @@
-import { convertToKebabCase, TooltipIcon } from '@linode/ui';
+import { CircleProgress, convertToKebabCase, TooltipIcon } from '@linode/ui';
import { IconButton, ListItemText } from '@mui/material';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
@@ -23,6 +23,10 @@ export interface ActionMenuProps {
* Gives the Menu Button an accessible name
*/
ariaLabel: string;
+ /**
+ * If true, show a loading indicator
+ */
+ loading?: boolean;
/**
* A function that is called when the Menu is opened. Useful for analytics.
*/
@@ -40,7 +44,8 @@ export interface ActionMenuProps {
* No more than 8 items should be displayed within an action menu.
*/
export const ActionMenu = React.memo((props: ActionMenuProps) => {
- const { actionsList, ariaLabel, onOpen, stopClickPropagation } = props;
+ const { actionsList, ariaLabel, loading, onOpen, stopClickPropagation } =
+ props;
const menuId = convertToKebabCase(ariaLabel);
const buttonId = `${convertToKebabCase(ariaLabel)}-button`;
@@ -95,6 +100,8 @@ export const ActionMenu = React.memo((props: ActionMenuProps) => {
aria-label={ariaLabel}
color="inherit"
id={buttonId}
+ loading={loading}
+ loadingIndicator={}
onClick={handleClick}
onKeyDown={handleKeyPress}
sx={(theme) => ({
@@ -112,66 +119,68 @@ export const ActionMenu = React.memo((props: ActionMenuProps) => {
>
-
+ {!loading && (
+
+ )}
>
);
});
diff --git a/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.test.tsx b/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.test.tsx
index a392bf0ef76..6fc3c569ed4 100644
--- a/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.test.tsx
+++ b/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.test.tsx
@@ -13,7 +13,7 @@ import { PaymentMethodRow } from './PaymentMethodRow';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
make_billing_payment: false,
update_account: false,
},
@@ -146,7 +146,7 @@ describe('Payment Method Row', () => {
it('Calls `onDelete` callback when "Delete" action is clicked', async () => {
const mockFunction = vi.fn();
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
make_billing_payment: false,
update_account: true,
},
@@ -172,7 +172,7 @@ describe('Payment Method Row', () => {
it('Makes payment method default when "Make Default" action is clicked', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
make_billing_payment: true,
update_account: true,
},
@@ -203,7 +203,7 @@ describe('Payment Method Row', () => {
it('should disable "Make a Payment" button if the user does not have make_billing_payment permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
make_billing_payment: false,
update_account: false,
},
@@ -229,7 +229,7 @@ describe('Payment Method Row', () => {
it('should enable "Make a Payment" button if the user has make_billing_payment permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
make_billing_payment: true,
update_account: false,
},
diff --git a/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.tsx b/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.tsx
index d3970e4c1a1..4a2f6fe98aa 100644
--- a/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.tsx
+++ b/packages/manager/src/components/PaymentMethodRow/PaymentMethodRow.tsx
@@ -43,7 +43,7 @@ export const PaymentMethodRow = (props: Props) => {
const { mutateAsync: makePaymentMethodDefault } =
useMakeDefaultPaymentMethodMutation(props.paymentMethod.id);
- const { permissions } = usePermissions('account', [
+ const { data: permissions } = usePermissions('account', [
'make_billing_payment',
'update_account',
]);
diff --git a/packages/manager/src/components/SelectFirewallPanel/SelectFirewallPanel.test.tsx b/packages/manager/src/components/SelectFirewallPanel/SelectFirewallPanel.test.tsx
index 1d06b176d32..3af10cf7b5c 100644
--- a/packages/manager/src/components/SelectFirewallPanel/SelectFirewallPanel.test.tsx
+++ b/packages/manager/src/components/SelectFirewallPanel/SelectFirewallPanel.test.tsx
@@ -15,7 +15,7 @@ const testId = 'select-firewall-panel';
const queryMocks = vi.hoisted(() => ({
usePermissions: vi.fn(() => ({
- permissions: { delete_firewall: true, update_firewall: true },
+ data: { delete_firewall: true, update_firewall: true },
})),
useQueryWithPermissions: vi.fn().mockReturnValue({
data: [],
diff --git a/packages/manager/src/features/Account/AccountLanding.test.tsx b/packages/manager/src/features/Account/AccountLanding.test.tsx
index a4ace258d90..09bcc926a22 100644
--- a/packages/manager/src/features/Account/AccountLanding.test.tsx
+++ b/packages/manager/src/features/Account/AccountLanding.test.tsx
@@ -6,7 +6,7 @@ import { AccountLanding } from './AccountLanding';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: { make_billing_payment: false },
+ data: { make_billing_payment: false },
})),
}));
@@ -26,7 +26,7 @@ describe('AccountLanding', () => {
it('should enable "Make a Payment" button if the user has make_billing_payment permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { make_billing_payment: true },
+ data: { make_billing_payment: true },
});
const { getByRole } = renderWithTheme();
diff --git a/packages/manager/src/features/Account/AccountLanding.tsx b/packages/manager/src/features/Account/AccountLanding.tsx
index 2e79df5616c..3c8f658fa1a 100644
--- a/packages/manager/src/features/Account/AccountLanding.tsx
+++ b/packages/manager/src/features/Account/AccountLanding.tsx
@@ -39,7 +39,9 @@ export const AccountLanding = () => {
const { data: profile } = useProfile();
const { limitsEvolution } = useFlags();
- const { permissions } = usePermissions('account', ['make_billing_payment']);
+ const { data: permissions } = usePermissions('account', [
+ 'make_billing_payment',
+ ]);
const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);
const sessionContext = React.useContext(switchAccountSessionContext);
diff --git a/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.test.tsx b/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.test.tsx
index f8ca3a44101..51ec9c4a297 100644
--- a/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.test.tsx
+++ b/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.test.tsx
@@ -14,7 +14,7 @@ const accountBalanceValue = 'account-balance-value';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_promo_code: false,
},
})),
@@ -192,7 +192,7 @@ describe('BillingSummary', () => {
it('displays the "Add a promo code" button if user has create_promo_code permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_promo_code: true,
},
});
diff --git a/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.tsx b/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.tsx
index 70961ff5050..fcd5dcfa140 100644
--- a/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.tsx
+++ b/packages/manager/src/features/Billing/BillingPanels/BillingSummary/BillingSummary.tsx
@@ -30,7 +30,9 @@ export const BillingSummary = (props: BillingSummaryProps) => {
const { data: notifications } = useNotificationsQuery();
const { data: account } = useAccount();
- const { permissions } = usePermissions('account', ['create_promo_code']);
+ const { data: permissions } = usePermissions('account', [
+ 'create_promo_code',
+ ]);
const [isPromoDialogOpen, setIsPromoDialogOpen] =
React.useState(false);
diff --git a/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx b/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx
index 6ab8eb34068..3f2e3f1a2e4 100644
--- a/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx
+++ b/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx
@@ -10,7 +10,7 @@ const EDIT_BUTTON_ID = 'edit-contact-info';
const queryMocks = vi.hoisted(() => ({
useProfile: vi.fn().mockReturnValue({}),
userPermissions: vi.fn(() => ({
- permissions: { update_account: false },
+ data: { update_account: false },
})),
}));
@@ -85,7 +85,7 @@ describe('Edit Contact Information', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_account: true },
+ data: { update_account: true },
});
const { getByTestId } = renderWithTheme();
@@ -104,7 +104,7 @@ describe('Edit Contact Information', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_account: true },
+ data: { update_account: true },
});
const { getByTestId } = renderWithTheme(
diff --git a/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.tsx b/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.tsx
index 971083369d9..d362e6afb8a 100644
--- a/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.tsx
+++ b/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.tsx
@@ -76,7 +76,7 @@ export const ContactInformation = React.memo((props: Props) => {
return notification.type === 'tax_id_verifying';
});
- const { permissions } = usePermissions('account', ['update_account']);
+ const { data: permissions } = usePermissions('account', ['update_account']);
const isReadOnly = !permissions.update_account || isChildUser;
diff --git a/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx b/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx
index 5e5d0650a06..cfe11db70c6 100644
--- a/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx
+++ b/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx
@@ -22,7 +22,7 @@ vi.mock('@linode/api-v4/lib/account', async () => {
const queryMocks = vi.hoisted(() => ({
useProfile: vi.fn().mockReturnValue({}),
userPermissions: vi.fn(() => ({
- permissions: { update_account: false, make_billing_payment: false },
+ data: { update_account: false, make_billing_payment: false },
})),
}));
@@ -98,7 +98,7 @@ describe('Payment Info Panel', () => {
it('Opens "Add Payment Method" drawer when "Add Payment Method" is clicked', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_account: true, make_billing_payment: true },
+ data: { update_account: true, make_billing_payment: true },
});
const { getByTestId, findByTestId } = renderWithTheme(
@@ -187,7 +187,7 @@ describe('Payment Info Panel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_account: false, make_billing_payment: false },
+ data: { update_account: false, make_billing_payment: false },
});
const { getByTestId } = renderWithTheme(
diff --git a/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.tsx b/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.tsx
index 7a664342583..09dc656af8e 100644
--- a/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.tsx
+++ b/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.tsx
@@ -48,7 +48,7 @@ const PaymentInformation = (props: Props) => {
const isChildUser = profile?.user_type === 'child';
- const { permissions } = usePermissions('account', ['update_account']);
+ const { data: permissions } = usePermissions('account', ['update_account']);
const isReadOnly = !permissions.update_account || isChildUser;
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.test.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.test.tsx
index a55b44ae319..65c58a3cd2f 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.test.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.test.tsx
@@ -18,7 +18,7 @@ const props = {
const queryMocks = vi.hoisted(() => ({
useParams: vi.fn().mockReturnValue({}),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_firewall_device: false,
},
})),
@@ -63,7 +63,7 @@ describe('AddLinodeDrawer', () => {
it('should disable "Add" button if the user does not have create_firewall_device permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: false,
},
});
@@ -86,7 +86,7 @@ describe('AddLinodeDrawer', () => {
it('should enable "Add" button if the user has create_firewall_device permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: true,
},
});
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx
index 0fe68254b15..ff32e4c52c8 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx
@@ -59,7 +59,7 @@ export const AddLinodeDrawer = (props: Props) => {
const firewall = data?.find((firewall) => firewall.id === Number(id));
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'firewall',
['create_firewall_device'],
firewall?.id
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.test.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.test.tsx
index 5f922d4b970..7ef14493bdd 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.test.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.test.tsx
@@ -19,7 +19,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn().mockReturnValue({}),
useSearch: vi.fn().mockReturnValue({}),
usePermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_firewall_device: false,
},
})),
@@ -97,7 +97,7 @@ services.forEach((service: FirewallDeviceEntityType) => {
if (serviceName !== 'Linode') {
it(`should contain a disabled Add ${serviceName} button`, () => {
queryMocks.usePermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: false,
},
});
@@ -121,7 +121,7 @@ services.forEach((service: FirewallDeviceEntityType) => {
if (serviceName !== 'Linode') {
it(`should contain an enabled Add ${serviceName} button`, () => {
queryMocks.usePermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: true,
},
});
@@ -135,7 +135,7 @@ services.forEach((service: FirewallDeviceEntityType) => {
it(`should navigate to Add ${serviceName} To Firewall drawer when enabled`, async () => {
queryMocks.usePermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: true,
},
});
@@ -163,7 +163,7 @@ services.forEach((service: FirewallDeviceEntityType) => {
if (serviceName === 'Linode') {
it('should disable "Add Linodes to Firewall" button if the user does not have create_firewall_device permission', async () => {
queryMocks.usePermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: false,
},
});
@@ -180,7 +180,7 @@ services.forEach((service: FirewallDeviceEntityType) => {
});
it('should enable "Add Linodes to Firewall" button if the user has create_firewall_device permission', async () => {
queryMocks.usePermissions.mockReturnValue({
- permissions: {
+ data: {
create_firewall_device: true,
},
});
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx
index c545101b9e6..ba80f034d07 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/FirewallDeviceLanding.tsx
@@ -27,7 +27,7 @@ export const FirewallDeviceLanding = React.memo(
const theme = useTheme();
const navigate = useNavigate();
const location = useLocation();
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'firewall',
['create_firewall_device', 'delete_firewall_device'],
firewallId
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/RemoveDeviceDialog.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/RemoveDeviceDialog.tsx
index 40d79c82d66..8ac0f1ad825 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/RemoveDeviceDialog.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/RemoveDeviceDialog.tsx
@@ -52,13 +52,13 @@ export const RemoveDeviceDialog = React.memo((props: Props) => {
const deviceDialog = formattedTypes[deviceType ?? 'linode'];
- const { permissions: firewallPermissions } = usePermissions(
+ const { data: firewallPermissions } = usePermissions(
'firewall',
['delete_firewall_device'],
firewallId
);
- const { permissions: linodePermissions } = usePermissions(
+ const { data: linodePermissions } = usePermissions(
'linode',
['update_linode'],
device?.entity.id
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.test.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.test.tsx
index e05ab9304dd..b779f0c3ead 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.test.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRulesLanding.test.tsx
@@ -7,7 +7,7 @@ import { FirewallRulesLanding } from './FirewallRulesLanding';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_firewall_rules: false,
},
})),
@@ -38,7 +38,7 @@ vi.mock('@tanstack/react-router', async () => {
const firewallRules = firewallRulesFactory.build();
const getDisabledState = () =>
- !queryMocks.userPermissions().permissions.update_firewall_rules;
+ !queryMocks.userPermissions().data.update_firewall_rules;
describe('FirewallRuleTable', () => {
it('should disable "Add AN Inbound Rule" button if the user does not have update_firewall_rules permission', () => {
@@ -117,7 +117,7 @@ describe('FirewallRuleTable', () => {
it('should enable menu buttons if the user has update_firewall_rules permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_firewall_rules: true,
},
});
@@ -150,7 +150,7 @@ describe('FirewallRuleTable', () => {
it('should enable "Add AN Inbound Rule" button if the user has update_firewall_rules permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_firewall_rules: true,
},
});
@@ -170,7 +170,7 @@ describe('FirewallRuleTable', () => {
it('should enable "Add AN Outbound Rule" button if the user has update_firewall_rules permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_firewall_rules: true,
},
});
diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/index.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/index.tsx
index ddffbaf1429..54a812b9ab7 100644
--- a/packages/manager/src/features/Firewalls/FirewallDetail/index.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallDetail/index.tsx
@@ -73,7 +73,7 @@ export const FirewallDetail = () => {
firewallSettings &&
getFirewallDefaultEntities(firewallId, firewallSettings);
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'firewall',
['update_firewall_rules'],
firewallId
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.test.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.test.tsx
index fd75affb34b..e137950eab6 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.test.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.test.tsx
@@ -10,7 +10,7 @@ import { CreateFirewallDrawer } from './CreateFirewallDrawer';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: { create_firewall: true },
+ data: { create_firewall: true },
})),
useQueryWithPermissions: vi.fn().mockReturnValue({
data: [],
@@ -120,7 +120,7 @@ describe('Create Firewall Drawer', () => {
it('enables the submit button if the user has create_firewall permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { create_firewall: true },
+ data: { create_firewall: true },
});
renderWithTheme();
@@ -130,7 +130,7 @@ describe('Create Firewall Drawer', () => {
it('disables the submit button if the user does not have create_firewall permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { create_firewall: false },
+ data: { create_firewall: false },
});
renderWithTheme();
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.tsx
index a3b827b3b4b..ecced57860c 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/CreateFirewallDrawer.tsx
@@ -62,7 +62,7 @@ export const CreateFirewallDrawer = (props: CreateFirewallDrawerProps) => {
const { mutateAsync: createFirewall } = useCreateFirewall();
- const { permissions } = usePermissions('account', ['create_firewall']);
+ const { data: permissions } = usePermissions('account', ['create_firewall']);
const { enqueueSnackbar } = useSnackbar();
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.test.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.test.tsx
index 05d3d1535a2..760079ed846 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.test.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.test.tsx
@@ -10,10 +10,10 @@ import type { FirewallStatus } from '@linode/api-v4';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: { update_firewall: false, delete_firewall: false },
+ data: { update_firewall: false, delete_firewall: false },
})),
useIsLinodeInterfacesEnabled: vi.fn(() => ({
- permissions: { isLinodeInterfacesEnabled: false },
+ data: { isLinodeInterfacesEnabled: false },
})),
}));
@@ -51,7 +51,7 @@ describe('FirewallActionMenu', () => {
it('enables Enable/Disable and Delete actions if user has permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_firewall: true, delete_firewall: true },
+ data: { update_firewall: true, delete_firewall: true },
});
renderWithTheme();
@@ -68,7 +68,7 @@ describe('FirewallActionMenu', () => {
it('enables Enable/Disable and disabled Delete actions if user has permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_firewall: true, delete_firewall: false },
+ data: { update_firewall: true, delete_firewall: false },
});
renderWithTheme();
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.tsx
index 9054760943e..35e56f1e868 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallActionMenu.tsx
@@ -41,7 +41,7 @@ export const FirewallActionMenu = React.memo((props: Props) => {
triggerEnableFirewall,
} = props;
- const { permissions } = usePermissions(
+ const { data: permissions, isLoading } = usePermissions(
'firewall',
['update_firewall', 'delete_firewall'],
firewallID,
@@ -87,6 +87,7 @@ export const FirewallActionMenu = React.memo((props: Props) => {
setIsOpen(true)}
/>
);
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLanding.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLanding.tsx
index 89e70c000d2..08be4221aec 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLanding.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLanding.tsx
@@ -72,7 +72,7 @@ const FirewallLanding = () => {
(firewall) => firewall.id === selectedFirewallId
);
- const { permissions } = usePermissions('account', ['create_firewall']);
+ const { data: permissions } = usePermissions('account', ['create_firewall']);
const openModal = (mode: Mode, id: number) => {
setSelectedFirewallId(id);
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.test.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.test.tsx
index cb923649a88..750db31c00d 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.test.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.test.tsx
@@ -7,7 +7,7 @@ import { FirewallLandingEmptyState } from './FirewallLandingEmptyState';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: { create_firewall: true },
+ data: { create_firewall: true },
})),
}));
@@ -18,7 +18,7 @@ vi.mock('src/features/IAM/hooks/usePermissions', () => ({
describe('FirewallLandingEmptyState', () => {
it('enables the Create Firewall button if the user has create_firewall permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { create_firewall: true },
+ data: { create_firewall: true },
});
renderWithTheme(
@@ -29,7 +29,7 @@ describe('FirewallLandingEmptyState', () => {
it('disables the Create Firewall button if the user does not have create_firewall permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { create_firewall: false },
+ data: { create_firewall: false },
});
renderWithTheme(
diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.tsx
index 349adb1700a..08d650378c6 100644
--- a/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.tsx
+++ b/packages/manager/src/features/Firewalls/FirewallLanding/FirewallLandingEmptyState.tsx
@@ -20,7 +20,7 @@ interface Props {
export const FirewallLandingEmptyState = (props: Props) => {
const { openAddFirewallDrawer } = props;
- const { permissions } = usePermissions('account', ['create_firewall']);
+ const { data: permissions } = usePermissions('account', ['create_firewall']);
return (
{
vi.mock('src/features/IAM/hooks/usePermissions', () => ({
usePermissions: vi.fn(() => ({
- permissions: { delete_firewall: true, update_firewall: true },
+ data: { delete_firewall: true, update_firewall: true },
})),
}));
diff --git a/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.test.tsx b/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.test.tsx
index 1a4d881a816..22bde07e31a 100644
--- a/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.test.tsx
+++ b/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.test.tsx
@@ -8,7 +8,7 @@ import { UsernamePanel } from './UsernamePanel';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_user: false,
},
})),
@@ -45,7 +45,7 @@ describe('UsernamePanel', () => {
it("does not allow the user to update a proxy user's username", async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_user: true,
},
});
@@ -78,7 +78,7 @@ describe('UsernamePanel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_user: true,
},
});
diff --git a/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.tsx b/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.tsx
index c52e10bd302..901f3f241e4 100644
--- a/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.tsx
+++ b/packages/manager/src/features/IAM/Users/UserDetails/UsernamePanel.tsx
@@ -23,7 +23,7 @@ export const UsernamePanel = ({ user }: Props) => {
const { mutateAsync } = useUpdateUserMutation(user.username);
- const { permissions } = usePermissions('account', ['update_user']);
+ const { data: permissions } = usePermissions('account', ['update_user']);
const {
control,
diff --git a/packages/manager/src/features/IAM/hooks/usePermissions.ts b/packages/manager/src/features/IAM/hooks/usePermissions.ts
index bb9a5df58d2..06e43dafb6a 100644
--- a/packages/manager/src/features/IAM/hooks/usePermissions.ts
+++ b/packages/manager/src/features/IAM/hooks/usePermissions.ts
@@ -28,23 +28,25 @@ import type {
} from '@linode/api-v4';
import type { UseQueryResult } from '@linode/queries';
+export type PermissionsResult = {
+ data: Record;
+} & Omit, 'data'>;
+
export const usePermissions = (
accessType: AccessType,
permissionsToCheck: PermissionType[],
entityId?: number,
enabled: boolean = true
-): { permissions: Record } => {
+): PermissionsResult => {
const { isIAMEnabled } = useIsIAMEnabled();
- const { data: userAccountPermissions } = useUserAccountPermissions(
- isIAMEnabled && accessType === 'account' && enabled
- );
+ const { data: userAccountPermissions, ...restAccountPermissions } =
+ useUserAccountPermissions(
+ isIAMEnabled && accessType === 'account' && enabled
+ );
- const { data: userEntityPermisssions } = useUserEntityPermissions(
- accessType,
- entityId!,
- isIAMEnabled && enabled
- );
+ const { data: userEntityPermisssions, ...restEntityPermissions } =
+ useUserEntityPermissions(accessType, entityId!, isIAMEnabled && enabled);
const usersPermissions =
accessType === 'account' ? userAccountPermissions : userEntityPermisssions;
@@ -66,7 +68,11 @@ export const usePermissions = (
entityId
);
- return { permissions: permissionMap } as const;
+ return {
+ data: permissionMap,
+ ...restAccountPermissions,
+ ...restEntityPermissions,
+ } as const;
};
export type EntityBase = Pick;
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Actions.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Actions.test.tsx
index 0c81bd5584d..2a395aa1ec0 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Actions.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Actions.test.tsx
@@ -9,7 +9,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
clone_linode: false,
},
@@ -65,7 +65,7 @@ describe('Actions', () => {
it('should render an enabled create button, if user has create_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
clone_linode: true,
},
@@ -84,7 +84,7 @@ describe('Actions', () => {
it('should render an enabled create button for cloning, if user has clone_linode permission', () => {
queryMocks.useParams.mockReturnValue({ type: 'Clone Linode' });
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
clone_linode: true,
},
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Actions.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Actions.tsx
index bceb76f7062..e9371f92ad2 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Actions.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Actions.tsx
@@ -43,9 +43,13 @@ export const Actions = ({ isAlertsBetaMode }: ActionProps) => {
],
});
- const { permissions } = usePermissions('linode', ['clone_linode'], linodeId);
+ const { data: permissions } = usePermissions(
+ 'linode',
+ ['clone_linode'],
+ linodeId
+ );
- const { permissions: accountPermissions } = usePermissions('account', [
+ const { data: accountPermissions } = usePermissions('account', [
'create_linode',
]);
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx
index 4a891ae67fc..500c4602dde 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx
@@ -16,7 +16,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -65,7 +65,7 @@ describe('Linode Create Backups Addon', () => {
it('should be enabled if the user has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.tsx
index aa468a887ec..758f683f2b1 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.tsx
@@ -35,7 +35,7 @@ export const Backups = () => {
name: ['region', 'type', 'disk_encryption'],
});
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const { data: type } = useTypeQuery(typeId, Boolean(typeId));
const { data: regions } = useRegionsQuery();
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx
index 07d21530313..b7b82537cc8 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx
@@ -12,7 +12,7 @@ import type { CreateLinodeRequest } from '@linode/api-v4';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -45,7 +45,7 @@ describe('Linode Create Private IP Add-on', () => {
it('should be enabled if the user has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.tsx
index 6b9f3608bf9..70e7e9802fc 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.tsx
@@ -23,7 +23,7 @@ export const PrivateIP = () => {
const { data: regions } = useRegionsQuery();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const regionId = useWatch({ name: 'region' });
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx
index 5569ad4ad11..b656b66041f 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx
@@ -10,7 +10,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -105,7 +105,7 @@ describe('Linode Create Details', () => {
it('should enable the label and tag TextFields if the user has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.tsx
index 8694c0fea78..dd9febe93e8 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.tsx
@@ -17,7 +17,7 @@ export const Details = () => {
const createType = useGetLinodeCreateType();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
return (
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.test.tsx
index efb06e5ebaa..05ef20a0f51 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.test.tsx
@@ -12,7 +12,7 @@ import type { LinodeCreateFormValues } from './utilities';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
acknowledge_account_agreement: false,
},
})),
@@ -48,7 +48,7 @@ describe('EUAgreement', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
acknowledge_account_agreement: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.tsx b/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.tsx
index c6f9a0b7857..2f2ad558a56 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/EUAgreement.tsx
@@ -26,7 +26,7 @@ export const EUAgreement = () => {
const { data: agreements } = useAccountAgreements(hasSelectedAnEURegion);
- const { permissions } = usePermissions('account', [
+ const { data: permissions } = usePermissions('account', [
'acknowledge_account_agreement',
]);
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Firewall.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Firewall.test.tsx
index 1efdd94dc7b..94f6f00b35f 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Firewall.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Firewall.test.tsx
@@ -15,7 +15,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
create_firewall: false,
},
@@ -78,7 +78,7 @@ describe('Linode Create Firewall', () => {
it('should enable a Firewall select if the user has create_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
create_firewall: true,
},
@@ -95,7 +95,7 @@ describe('Linode Create Firewall', () => {
it('should enable a "Create Firewall" button if the user has create_firewall permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
create_firewall: true,
},
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Firewall.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Firewall.tsx
index 63afa31726b..162254cf02a 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Firewall.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Firewall.tsx
@@ -36,7 +36,7 @@ export const Firewall = () => {
const secureVMFirewallBanner =
(secureVMNoticesEnabled && flags.secureVmCopy) ?? false;
- const { permissions } = usePermissions('account', [
+ const { data: permissions } = usePermissions('account', [
'create_linode',
'create_firewall',
]);
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Networking/Firewall.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Networking/Firewall.tsx
index bb2849ba357..1d02c5f3434 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Networking/Firewall.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Networking/Firewall.tsx
@@ -30,7 +30,7 @@ export const Firewall = () => {
] = useState(false);
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
- const { permissions } = usePermissions('account', [
+ const { data: permissions } = usePermissions('account', [
'create_linode',
'create_firewall',
]);
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.test.tsx
index 7a7b359fee2..7d5dc4c1be9 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.test.tsx
@@ -6,7 +6,7 @@ import { InterfaceFirewall } from './InterfaceFirewall';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
create_firewall: false,
},
@@ -42,7 +42,7 @@ describe('InterfaceFirewall', () => {
it('should enable a Firewall select if the user has create_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
create_firewall: true,
},
@@ -59,7 +59,7 @@ describe('InterfaceFirewall', () => {
it('should enable a "Create Firewall" button if the user has create_firewall permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
create_firewall: true,
},
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.tsx
index a0e76685a5f..58f41dac985 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceFirewall.tsx
@@ -40,7 +40,7 @@ export const InterfaceFirewall = ({ index }: Props) => {
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
- const { permissions } = usePermissions('account', [
+ const { data: permissions } = usePermissions('account', [
'create_linode',
'create_firewall',
]);
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Networking/LinodeInterface.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Networking/LinodeInterface.test.tsx
index b4ebe104224..74602447795 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Networking/LinodeInterface.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Networking/LinodeInterface.test.tsx
@@ -12,7 +12,7 @@ import type { LinodeCreateFormValues } from '../utilities';
vi.mock('src/features/IAM/hooks/usePermissions', () => ({
usePermissions: vi.fn(() => ({
- permissions: { delete_firewall: true, update_firewall: true },
+ data: { delete_firewall: true, update_firewall: true },
})),
}));
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.test.tsx
index faff1615604..3031352c54c 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.test.tsx
@@ -9,7 +9,7 @@ import { VLAN } from './VLAN';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -40,7 +40,7 @@ describe('VLAN', () => {
const region = regionFactory.build({ capabilities: ['Vlans'] });
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.tsx
index 11334f13321..d64ceaf6110 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Networking/VLAN.tsx
@@ -17,7 +17,7 @@ interface Props {
export const VLAN = ({ index }: Props) => {
const { control } = useFormContext();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const regionId = useWatch({ control, name: 'region' });
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Plan.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Plan.tsx
index c55ae9c1868..497c04cd73b 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Plan.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Plan.tsx
@@ -26,7 +26,7 @@ export const Plan = () => {
const { data: types } = useAllTypes();
const createType = useGetLinodeCreateType();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
return (
({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -77,7 +77,7 @@ describe('Region', () => {
it('should enable the region select is the user has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Region.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Region.tsx
index 53f436e21e3..427812f51d7 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Region.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Region.tsx
@@ -70,7 +70,7 @@ export const Region = React.memo(() => {
Boolean(selectedLinode?.type)
);
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const { data: regions } = useRegionsQuery();
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx
index 1dfd8ce4bd7..eecc3105370 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx
@@ -24,7 +24,7 @@ const queryMocks = vi.hoisted(() => ({
useSearch: vi.fn().mockReturnValue({}),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -65,7 +65,7 @@ describe('Security', () => {
it('should enable the root password input if the user does has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
@@ -95,7 +95,7 @@ describe('Security', () => {
it('should disable an "Add An SSH Key" button if the user does not have create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: false,
},
});
@@ -112,7 +112,7 @@ describe('Security', () => {
it('should enable an "Add An SSH Key" button if the user has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Security.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Security.tsx
index e2e598e3e9a..781fe44396a 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Security.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Security.tsx
@@ -45,7 +45,7 @@ export const Security = () => {
selectedRegion?.id ?? ''
);
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
return (
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.test.tsx
index eb7614780a2..e3d3f068610 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.test.tsx
@@ -9,7 +9,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -60,7 +60,7 @@ describe('Images', () => {
it('renders an enables image select, if user has create_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.tsx
index 7fbd8f25315..717cdc85696 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Images.tsx
@@ -32,7 +32,7 @@ export const Images = () => {
});
const queryClient = useQueryClient();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const regionId = useWatch({ control, name: 'region' });
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.test.tsx
index 9c24f808bf8..23dcfaea4f9 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.test.tsx
@@ -9,7 +9,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -69,7 +69,7 @@ describe('OperatingSystems', () => {
it('should enable "ImageSelect" component if the user does has create_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.tsx
index 61c9b5bc44d..dbfa4b981d2 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/OperatingSystems.tsx
@@ -34,7 +34,7 @@ export const OperatingSystems = () => {
const { data: region } = useRegionQuery(regionId);
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const onChange = async (image: Image | null) => {
field.onChange(image?.id ?? null);
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/UserData/UserData.tsx b/packages/manager/src/features/Linodes/LinodeCreate/UserData/UserData.tsx
index 7dad7bb6af1..72432706a53 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/UserData/UserData.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/UserData/UserData.tsx
@@ -43,7 +43,7 @@ export const UserData = () => {
[regions, regionId]
);
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
if (!region?.capabilities.includes('Metadata')) {
return null;
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.test.tsx
index 17ad2ddccf6..d10bbdb2be1 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.test.tsx
@@ -12,7 +12,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -69,7 +69,7 @@ describe('VLAN', () => {
const region = regionFactory.build({ capabilities: ['Vlans'] });
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.tsx b/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.tsx
index 6bb26a5a968..18860a918b3 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/VLAN/VLAN.tsx
@@ -23,7 +23,7 @@ export const VLAN = () => {
const createType = useGetLinodeCreateType();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const [imageId, regionId] = useWatch({ control, name: ['image', 'region'] });
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/index.tsx b/packages/manager/src/features/Linodes/LinodeCreate/index.tsx
index 0e114dae0f5..993ef94c63b 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/index.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/index.tsx
@@ -113,7 +113,7 @@ export const LinodeCreate = () => {
const { handleLinodeCreateAnalyticsFormError } =
useHandleLinodeCreateAnalyticsFormError(linodeCreateType ?? 'OS');
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const { tabs, handleTabChange, tabIndex } = useTabs([
{
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx
index 020dc07006f..4cf73ca9ae3 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx
@@ -18,7 +18,7 @@ const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
useSearch: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
clone_linode: true,
},
})),
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx
index d18aa94367a..271adf308ae 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx
@@ -14,7 +14,7 @@ import { LinodeSelectTableRow } from './LinodeSelectTableRow';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
shutdown_linode: false,
clone_linode: false,
},
@@ -68,7 +68,7 @@ describe('LinodeSelectTableRow', () => {
it('should should call onSelect when a radio is selected', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
shutdown_linode: false,
clone_linode: true,
},
@@ -179,7 +179,7 @@ describe('LinodeSelectTableRow', () => {
it('should render an enabled power off button if the Linode is powered on, a onPowerOff function is passed, and the row is selected, if user has shutdown_linode permission', async () => {
const linode = linodeFactory.build({ status: 'running' });
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
shutdown_linode: true,
clone_linode: true,
},
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.tsx
index db0ad68ae64..ae6b9a20440 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.tsx
@@ -33,7 +33,7 @@ export const LinodeSelectTableRow = (props: Props) => {
const region = regions?.find((r) => r.id === linode.region);
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['shutdown_linode', 'clone_linode'],
linode.id
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx
index ec085bed987..9baac9b60ad 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx
@@ -21,7 +21,7 @@ const defaultProps = {
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
shutdown_linode: false,
clone_linode: false,
},
@@ -75,7 +75,7 @@ describe('SelectLinodeCard', () => {
it('should enable the Selection Card if user has clone_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
shutdown_linode: true,
clone_linode: true,
},
@@ -95,7 +95,7 @@ describe('SelectLinodeCard', () => {
it('displays the status and the enabled Power Off button of a linode that is selected and running when power actions should be shown, and user has shutdown_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
shutdown_linode: true,
clone_linode: true,
},
diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.tsx
index e8c2c4fecfb..216069da2e6 100644
--- a/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.tsx
+++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.tsx
@@ -45,7 +45,7 @@ export const SelectLinodeCard = ({
Boolean(linode?.image)
);
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['shutdown_linode', 'clone_linode'],
linode.id
diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx
index 7415d57c815..3e28891aac2 100644
--- a/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx
@@ -28,7 +28,7 @@ import type { AccountCapability } from '@linode/api-v4';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_linode: false,
},
})),
diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx
index e1759161154..ccc334b48ef 100644
--- a/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx
+++ b/packages/manager/src/features/Linodes/LinodeEntityDetail.tsx
@@ -74,7 +74,7 @@ export const LinodeEntityDetail = (props: Props) => {
linodeId: linode.id,
});
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['update_linode'],
linode.id
diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.test.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.test.tsx
index ac6e5918b37..523a279660f 100644
--- a/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.test.tsx
@@ -15,7 +15,7 @@ const props = {
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: { update_account: false },
+ data: { update_account: false },
})),
}));
@@ -37,7 +37,7 @@ describe('LinodeEntityDetailFooter', () => {
it('should enable "Add a tag" button if the user has update_account permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: { update_account: true },
+ data: { update_account: true },
});
const { getByRole } = renderWithTheme(
diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.tsx
index d0603d0aa6b..e37e692cfb8 100644
--- a/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.tsx
+++ b/packages/manager/src/features/Linodes/LinodeEntityDetailFooter.tsx
@@ -40,7 +40,7 @@ export const LinodeEntityDetailFooter = React.memo((props: FooterProps) => {
linodeTags,
} = props;
- const { permissions } = usePermissions('account', ['update_account']);
+ const { data: permissions } = usePermissions('account', ['update_account']);
const { mutateAsync: updateLinode } = useLinodeUpdateMutation(linodeId);
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.test.tsx
index 498b6855c6a..f7e43abc512 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.test.tsx
@@ -10,7 +10,7 @@ import LinodeAlerts from './LinodeAlerts';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_linode: false,
},
})),
@@ -56,7 +56,7 @@ describe('LinodeAlerts', () => {
it('should enable "Save" button if the user has update_linode permission', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.tsx
index fa7370800ec..4dea813478d 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeAlerts/LinodeAlerts.tsx
@@ -21,7 +21,7 @@ const LinodeAlerts = () => {
const { aclpBetaServices } = useFlags();
const { data: linode } = useLinodeQuery(id);
- const { permissions } = usePermissions('linode', ['update_linode'], id);
+ const { data: permissions } = usePermissions('linode', ['update_linode'], id);
const isAclpAlertsSupportedRegionLinode = useIsAclpSupportedRegion({
capability: 'Linodes',
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackupActionMenu.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackupActionMenu.tsx
index 179bb986da1..6e72715f1cd 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackupActionMenu.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackupActionMenu.tsx
@@ -16,10 +16,10 @@ interface Props {
export const LinodeBackupActionMenu = (props: Props) => {
const { backup, linodeId, onDeploy, onRestore } = props;
- const { permissions: accountPermissions } = usePermissions('account', [
+ const { data: accountPermissions } = usePermissions('account', [
'create_linode',
]);
- const { permissions: linodePermissions } = usePermissions(
+ const { data: linodePermissions } = usePermissions(
'linode',
['update_linode'],
linodeId
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx
index ee1beb3c871..b1d843ac6ee 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx
@@ -11,7 +11,7 @@ import type { LinodeBackupsResponse } from '@linode/api-v4';
const queryMocks = vi.hoisted(() => ({
useParams: vi.fn(),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
list_linode_backups: true,
create_linode_backup_snapshot: true,
cancel_linode_backups: true,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.tsx
index 142934fbb0d..11b92feb8a5 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.tsx
@@ -43,7 +43,7 @@ export const LinodeBackups = () => {
const navigate = useNavigate();
const { isBareMetalInstance } = useLinodeDetailContext();
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
[
'cancel_linode_backups',
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.test.tsx
index 19d676bcbb3..d1f42a2d01e 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.test.tsx
@@ -20,7 +20,7 @@ vi.mock('@tanstack/react-router', async () => {
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
reboot_linode: false,
update_linode: false,
clone_linode: false,
@@ -90,7 +90,7 @@ describe('ConfigActionMenu', () => {
it('should enable all actions menu if the user has permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
reboot_linode: true,
update_linode: true,
clone_linode: true,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.tsx
index 4b62dab5af1..f4d5cd222ed 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigActionMenu.tsx
@@ -21,7 +21,7 @@ export const ConfigActionMenu = (props: Props) => {
const [isOpen, setIsOpen] = React.useState(false);
const navigate = useNavigate();
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['reboot_linode', 'update_linode', 'clone_linode', 'delete_linode'],
linodeId,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx
index 98dc9d2937e..2c0602ee594 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx
@@ -13,7 +13,7 @@ const queryMocks = vi.hoisted(() => ({
useLinodeQuery: vi.fn().mockReturnValue({}),
useParams: vi.fn().mockReturnValue({}),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode_config_profile: false,
},
})),
@@ -91,8 +91,8 @@ describe('LinodeConfigs', () => {
it('should enable "Add Configuration" button if the user has permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
create_linode_config_profile: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.tsx
index 9e0af4f5fed..2e33f98257f 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.tsx
@@ -54,7 +54,7 @@ const LinodeConfigs = () => {
const id = Number(linodeId);
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['create_linode_config_profile'],
id
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.test.tsx
index 919164ea467..90df3971da2 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.test.tsx
@@ -24,7 +24,7 @@ vi.mock('@tanstack/react-router', async () => {
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
apply_linode_firewalls: false,
delete_firewall_device: false,
},
@@ -70,8 +70,8 @@ describe('LinodeFirewalls', () => {
it("should enable 'Add Firewall' button if the user has apply_linode_firewalls permission", async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
apply_linode_firewalls: true,
},
});
@@ -84,8 +84,8 @@ describe('LinodeFirewalls', () => {
it("should disable 'Add Firewall' button if the user doesn't have apply_linode_firewalls permission", async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
apply_linode_firewalls: false,
},
});
@@ -98,8 +98,8 @@ describe('LinodeFirewalls', () => {
it("should enable 'Unassign' button if the user has delete_firewall_device permission", async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
delete_firewall_device: true,
},
});
@@ -122,8 +122,8 @@ describe('LinodeFirewalls', () => {
it("should disable 'Unassign' button if the user doesn't have delete_firewall_device permission", async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
delete_firewall_device: false,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.tsx
index 1c24a23f591..6aed322306f 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewalls.tsx
@@ -27,7 +27,7 @@ interface LinodeFirewallsProps {
export const LinodeFirewalls = (props: LinodeFirewallsProps) => {
const { linodeID } = props;
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['apply_linode_firewalls'],
linodeID,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewallsActionMenu.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewallsActionMenu.tsx
index e6343676c62..7764bf93b6a 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewallsActionMenu.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeFirewalls/LinodeFirewallsActionMenu.tsx
@@ -16,7 +16,7 @@ export const LinodeFirewallsActionMenu = (
) => {
const { firewallID, onUnassign } = props;
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'firewall',
['delete_firewall_device'],
firewallID,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.test.tsx
index 56f43decd44..38d97d07b39 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.test.tsx
@@ -10,7 +10,7 @@ const queryMocks = vi.hoisted(() => ({
useFlags: vi.fn().mockReturnValue({}),
useParams: vi.fn().mockReturnValue({}),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_linode: false,
delete_linode: false,
},
@@ -91,7 +91,7 @@ describe('LinodeSettings', () => {
it('should enable all buttons if the user has update_linode and delete_linode permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_linode: true,
delete_linode: true,
},
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.tsx
index ef25ae07927..f298ce2c9fd 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettings.tsx
@@ -16,7 +16,7 @@ const LinodeSettings = () => {
const { isVMHostMaintenanceEnabled } = useVMHostMaintenanceEnabled();
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['update_linode', 'delete_linode'],
id
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.test.tsx
index b09da16342e..17747de622a 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.test.tsx
@@ -16,7 +16,7 @@ const mockPoweredOffLinode = linodeFactory.build({ status: 'offline' });
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
password_reset_linode: false,
},
})),
@@ -72,7 +72,7 @@ describe('LinodeSettingsPasswordPanel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
password_reset_linode: true,
},
});
@@ -92,7 +92,7 @@ describe('LinodeSettingsPasswordPanel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
password_reset_linode: false,
},
});
@@ -120,7 +120,7 @@ describe('LinodeSettingsPasswordPanel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
password_reset_linode: false,
},
});
@@ -148,7 +148,7 @@ describe('LinodeSettingsPasswordPanel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
password_reset_linode: true,
},
});
@@ -172,7 +172,7 @@ describe('LinodeSettingsPasswordPanel', () => {
});
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
password_reset_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.tsx
index 83fe6dc8fcf..1557363a834 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsPasswordPanel.tsx
@@ -28,7 +28,7 @@ export const LinodeSettingsPasswordPanel = (props: Props) => {
const { linodeId } = props;
const { data: linode } = useLinodeQuery(linodeId);
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['password_reset_linode'],
linodeId
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.test.tsx
index ee0f1a3a54c..8516ec3137c 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.test.tsx
@@ -21,7 +21,7 @@ const queryMocks = vi.hoisted(() => ({
useNavigate: vi.fn(() => navigate),
useParams: vi.fn(() => ({})),
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_linode: false,
resize_linode: false,
delete_linode: false,
@@ -126,8 +126,8 @@ describe('LinodeDiskActionMenu', () => {
it('Clone should redirect to clone page', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
clone_linode: true,
},
});
@@ -197,7 +197,7 @@ describe('LinodeDiskActionMenu', () => {
it('should disable all actions menu if the user does not have permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_linode: false,
resize_linode: false,
delete_linode: false,
@@ -230,7 +230,7 @@ describe('LinodeDiskActionMenu', () => {
it('should enable all actions menu if the user has permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_linode: true,
resize_linode: true,
delete_linode: true,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.tsx
index e328a21e796..b41cee609e6 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDiskActionMenu.tsx
@@ -31,7 +31,7 @@ export const LinodeDiskActionMenu = (props: Props) => {
readOnly,
} = props;
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
['update_linode', 'resize_linode', 'delete_linode', 'clone_linode'],
linodeId,
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx
index 0c81d16470e..07eaff8c81a 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx
@@ -28,7 +28,7 @@ vi.mock('@linode/queries', async () => {
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode_disk: false,
},
})),
@@ -93,7 +93,7 @@ describe('LinodeDisks', () => {
it('should enable "add a disk" button if the user has a create_linode_disk permissions and has free disk space', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode_disk: true,
},
});
@@ -106,7 +106,7 @@ describe('LinodeDisks', () => {
it('should disable the "Add a Disk" button when there is no free disk space', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode_disk: true,
},
});
@@ -125,7 +125,7 @@ describe('LinodeDisks', () => {
it('should enable the "Add a Disk" button when there is free disk space', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode_disk: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.tsx
index 22f5aadd70f..6b95b6ee4e7 100644
--- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.tsx
+++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.tsx
@@ -43,7 +43,11 @@ export const LinodeDisks = () => {
const { data: linode } = useLinodeQuery(id);
const { data: grants } = useGrants();
- const { permissions } = usePermissions('linode', ['create_linode_disk'], id);
+ const { data: permissions } = usePermissions(
+ 'linode',
+ ['create_linode_disk'],
+ id
+ );
const [isDeleteDialogOpen, setIsDeleteDialogOpen] = React.useState(false);
const [isCreateDrawerOpen, setIsCreateDrawerOpen] = React.useState(false);
diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx
index 1c3b5c2b35c..3c94974d57d 100644
--- a/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx
@@ -28,7 +28,7 @@ const props: LinodeActionMenuProps = {
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
shutdown_linode: false,
reboot_linode: false,
clone_linode: false,
@@ -207,7 +207,7 @@ describe('LinodeActionMenu', () => {
it('should disable Action menu items if the user does not have required permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
shutdown_linode: false,
reboot_linode: false,
clone_linode: false,
@@ -253,8 +253,8 @@ describe('LinodeActionMenu', () => {
it('should enable "Reboot" button if the user has reboot_linode permissions', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
- ...queryMocks.userPermissions().permissions,
+ data: {
+ ...queryMocks.userPermissions().data,
reboot_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.tsx
index 2e84236ca8b..cf753131bb3 100644
--- a/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.tsx
+++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.tsx
@@ -57,7 +57,7 @@ export const LinodeActionMenu = (props: LinodeActionMenuProps) => {
const isBareMetalInstance = linodeType?.class === 'metal';
const hasHostMaintenance = linodeStatus === 'stopped';
- const { permissions } = usePermissions(
+ const { data: permissions } = usePermissions(
'linode',
[
'shutdown_linode',
diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx
index de95777182a..d1c9937f99b 100644
--- a/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx
@@ -8,7 +8,7 @@ import { LinodeRow, RenderFlag } from './LinodeRow';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {},
+ data: {},
})),
}));
diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.test.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.test.tsx
index 65e1e3a98f1..846f33ae692 100644
--- a/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.test.tsx
+++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.test.tsx
@@ -6,7 +6,7 @@ import { LinodesLandingEmptyState } from './LinodesLandingEmptyState';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
create_linode: false,
},
})),
@@ -37,7 +37,7 @@ describe('LinodesLandingEmptyState', () => {
it('should enable "Create Linode" button if the user has create_linode permission', () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
create_linode: true,
},
});
diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.tsx
index 9018eb8c2b8..26a6302e99a 100644
--- a/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.tsx
+++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodesLandingEmptyState.tsx
@@ -26,7 +26,7 @@ const APPS_MORE_LINKS_TEXT = 'See all Marketplace apps';
export const LinodesLandingEmptyState = () => {
const navigate = useNavigate();
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
return (
diff --git a/packages/manager/src/features/Linodes/index.tsx b/packages/manager/src/features/Linodes/index.tsx
index 1a0ad2e0d8b..e03867f4750 100644
--- a/packages/manager/src/features/Linodes/index.tsx
+++ b/packages/manager/src/features/Linodes/index.tsx
@@ -46,7 +46,7 @@ export const LinodesLandingWrapper = React.memo(() => {
flags.gecko2?.la
);
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const [regionFilter, setRegionFilter] = React.useState(
storage.regionFilter.get() ?? regionFilterOptions[0].value
);
diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.test.tsx
index 420f591658f..fdcfcdfacfc 100644
--- a/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.test.tsx
+++ b/packages/manager/src/features/NodeBalancers/NodeBalancerCreate.test.tsx
@@ -29,7 +29,7 @@ vi.mock('src/hooks/useFlags', () => {
vi.mock('src/features/IAM/hooks/usePermissions', () => ({
usePermissions: vi.fn(() => ({
- permissions: { create_firewall: true },
+ data: { create_firewall: true },
})),
}));
diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.tsx
index 17335f72318..a47b70b7746 100644
--- a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.tsx
+++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.tsx
@@ -53,7 +53,7 @@ export const PlacementGroupsDetailPanel = (props: Props) => {
selectedRegion?.capabilities.includes('Placement Group')
);
- const { permissions } = usePermissions('account', ['create_linode']);
+ const { data: permissions } = usePermissions('account', ['create_linode']);
const handlePlacementGroupCreated = (placementGroup: PlacementGroup) => {
handlePlacementGroupChange(placementGroup);
diff --git a/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx b/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx
index 8f6a9f197f8..8c3e0d1fe90 100644
--- a/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx
+++ b/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx
@@ -10,7 +10,7 @@ import { UsernameForm } from './UsernameForm';
const queryMocks = vi.hoisted(() => ({
userPermissions: vi.fn(() => ({
- permissions: {
+ data: {
update_user: false,
},
})),
@@ -52,7 +52,7 @@ describe('UsernameForm', () => {
it('disables the input if the user is a proxy user', async () => {
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_user: true,
},
});
@@ -79,7 +79,7 @@ describe('UsernameForm', () => {
server.use(http.get('*/v4/profile', () => HttpResponse.json(profile)));
queryMocks.userPermissions.mockReturnValue({
- permissions: {
+ data: {
update_user: true,
},
});
diff --git a/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.tsx b/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.tsx
index 1af0b383139..6ffa7bfce80 100644
--- a/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.tsx
+++ b/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.tsx
@@ -22,7 +22,7 @@ export const UsernameForm = () => {
const values = { username: profile?.username ?? '' };
- const { permissions } = usePermissions('account', ['update_user']);
+ const { data: permissions } = usePermissions('account', ['update_user']);
const {
control,