mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 20:30:33 +00:00
feat: shortcuts keyword table permissions access control.
This commit is contained in:
1
src/hooks/dashboard/index.js
Normal file
1
src/hooks/dashboard/index.js
Normal file
@@ -0,0 +1 @@
|
||||
export * from './useKeywordShortcuts';
|
||||
15
src/hooks/dashboard/useKeywordShortcuts.js
Normal file
15
src/hooks/dashboard/useKeywordShortcuts.js
Normal file
@@ -0,0 +1,15 @@
|
||||
import React from 'react';
|
||||
import keyboardShortcuts from 'common/keyboardShortcutsOptions';
|
||||
import { useAbilitiesFilter } from '../utils/useAbilityContext';
|
||||
|
||||
/**
|
||||
* Retrieve the filtered keyword shortcuts.
|
||||
*/
|
||||
export const useKeywordShortcuts = () => {
|
||||
const abilitiesFilter = useAbilitiesFilter();
|
||||
|
||||
return React.useMemo(
|
||||
() => abilitiesFilter(keyboardShortcuts),
|
||||
[abilitiesFilter],
|
||||
);
|
||||
};
|
||||
@@ -12,11 +12,12 @@ export const useAbilitiesFilter = () => {
|
||||
|
||||
return React.useCallback(
|
||||
(items) => {
|
||||
return items.filter((item) =>
|
||||
ability.can(item.permission.ability, item.permission.subject),
|
||||
return items.filter(
|
||||
(item) =>
|
||||
!item.permission ||
|
||||
ability.can(item.permission.ability, item.permission.subject),
|
||||
);
|
||||
},
|
||||
[ability],
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user