Fix sidebar items not showing up with partial permissions (#1949)
* Skip navigator's customerSearch query on dashboard load * Fetch extensions list only with MANAGE_APPS permission * Show sidebar sections with partial permissions * Trigger deployment * Change skipping query from always to when query is empty
This commit is contained in:
parent
cf7a51ab8e
commit
e186b2f8c3
3 changed files with 14 additions and 6 deletions
|
@ -1,3 +1,4 @@
|
|||
import { useUserPermissions } from "@saleor/auth/hooks/useUserPermissions";
|
||||
import {
|
||||
AppExtensionMountEnum,
|
||||
ExtensionListQuery,
|
||||
|
@ -64,6 +65,10 @@ export const useExtensions = <T extends AppExtensionMountEnum>(
|
|||
mountList: T[]
|
||||
): Record<T, Extension[]> => {
|
||||
const { openApp } = useExternalApp();
|
||||
const permissions = useUserPermissions();
|
||||
const extensionsPermissions = permissions?.find(
|
||||
perm => perm.code === PermissionEnum.MANAGE_APPS
|
||||
);
|
||||
|
||||
const { data } = useExtensionListQuery({
|
||||
fetchPolicy: "cache-first",
|
||||
|
@ -71,7 +76,8 @@ export const useExtensions = <T extends AppExtensionMountEnum>(
|
|||
filter: {
|
||||
mount: mountList
|
||||
}
|
||||
}
|
||||
},
|
||||
skip: !extensionsPermissions
|
||||
});
|
||||
|
||||
const extensions = filterAndMapToTarget(
|
||||
|
|
|
@ -248,7 +248,10 @@ function useMenuStructure(
|
|||
const userPermissions = (user?.userPermissions || []).map(
|
||||
permission => permission.code
|
||||
);
|
||||
return (menuItem.permissions || []).every(permission =>
|
||||
if (!menuItem?.permissions) {
|
||||
return true;
|
||||
}
|
||||
return menuItem.permissions.some(permission =>
|
||||
userPermissions.includes(permission)
|
||||
);
|
||||
};
|
||||
|
@ -259,12 +262,10 @@ function useMenuStructure(
|
|||
return [
|
||||
menuItems.reduce(
|
||||
(resultItems: FilterableMenuItem[], menuItem: FilterableMenuItem) => {
|
||||
const { children } = menuItem;
|
||||
|
||||
if (!isMenuItemPermitted(menuItem)) {
|
||||
return resultItems;
|
||||
}
|
||||
|
||||
const { children } = menuItem;
|
||||
const filteredChildren = children
|
||||
? getFilteredMenuItems(children)
|
||||
: undefined;
|
||||
|
|
|
@ -36,7 +36,8 @@ function useQuickSearch(
|
|||
variables: {
|
||||
...DEFAULT_INITIAL_SEARCH_DATA,
|
||||
first: 5
|
||||
}
|
||||
},
|
||||
skip: !query
|
||||
});
|
||||
const [{ data: catalog }, searchCatalog] = useSearchCatalog(5);
|
||||
const [createOrder] = useOrderDraftCreateMutation({
|
||||
|
|
Loading…
Reference in a new issue