feat: shortcuts keyword table permissions access control.

This commit is contained in:
a.bouhuolia
2021-11-26 23:38:39 +02:00
parent 383a9aad3b
commit 111ade2ac8
5 changed files with 143 additions and 12 deletions

View File

@@ -0,0 +1 @@
export * from './useKeywordShortcuts';

View 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],
);
};

View File

@@ -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],
);
};