From afee2e90e024c40f0df537761c29d00b0babdedc Mon Sep 17 00:00:00 2001
From: elforjani13 <39470382+elforjani13@users.noreply.github.com>
Date: Tue, 23 Nov 2021 15:24:53 +0200
Subject: [PATCH] ability.
---
src/components/Abilities.js | 10 ++++++++++
src/components/Can.js | 4 ++++
src/components/Config/ability.js | 10 ++++++++++
src/containers/Items/ItemsActionsBar.js | 20 +++++++++++++-------
4 files changed, 37 insertions(+), 7 deletions(-)
create mode 100644 src/components/Abilities.js
create mode 100644 src/components/Can.js
create mode 100644 src/components/Config/ability.js
diff --git a/src/components/Abilities.js b/src/components/Abilities.js
new file mode 100644
index 000000000..152ea01b0
--- /dev/null
+++ b/src/components/Abilities.js
@@ -0,0 +1,10 @@
+import { AbilityBuilder, defineAbility } from '@casl/ability';
+import { createContextualCan } from '@casl/react';
+import { createContext } from 'react';
+
+export const AbilityContext = createContext();
+export const Can = createContextualCan(AbilityContext.Consumer);
+
+export const ability = defineAbility((can, cannot) => {
+ cannot('Item', 'create');
+});
diff --git a/src/components/Can.js b/src/components/Can.js
new file mode 100644
index 000000000..9ba7fe434
--- /dev/null
+++ b/src/components/Can.js
@@ -0,0 +1,4 @@
+import { createCanBoundTo } from '@casl/react';
+import ability from '../components/Config/ability';
+
+export default createCanBoundTo(ability);
\ No newline at end of file
diff --git a/src/components/Config/ability.js b/src/components/Config/ability.js
new file mode 100644
index 000000000..72342959f
--- /dev/null
+++ b/src/components/Config/ability.js
@@ -0,0 +1,10 @@
+import { AbilityBuilder } from '@casl/ability';
+// import { AbilitySubject, ItemAbility } from '../../common/abilityOption';
+
+export function defineAbilitiesFor(role) {
+ const { rules, can } = new AbilityBuilder();
+
+ can('create', 'Item');
+
+ return new Ability(rules);
+}
diff --git a/src/containers/Items/ItemsActionsBar.js b/src/containers/Items/ItemsActionsBar.js
index 67e30c732..e882ac19d 100644
--- a/src/containers/Items/ItemsActionsBar.js
+++ b/src/containers/Items/ItemsActionsBar.js
@@ -30,6 +30,9 @@ import withSettings from '../Settings/withSettings';
import { compose } from 'utils';
import withSettingsActions from '../Settings/withSettingsActions';
+
+import { Can, AbilityContext } from '../../components/Abilities';
+
/**
* Items actions bar.
*/
@@ -57,6 +60,8 @@ function ItemsActionsBar({
// Items refresh action.
const { refresh } = useRefreshItems();
+ const { ability } = React.useContext(AbilityContext);
+
// History context.
const history = useHistory();
@@ -101,13 +106,14 @@ function ItemsActionsBar({
/>
- }
- text={}
- onClick={onClickNewItem}
- />
-
+ {/* */}
+ }
+ text={}
+ onClick={onClickNewItem}
+ />
+ {/* */}