feat: item & inventory.

This commit is contained in:
elforjani13
2021-11-23 16:51:40 +02:00
parent afee2e90e0
commit e5d02043ad
11 changed files with 177 additions and 106 deletions

View File

@@ -1,10 +0,0 @@
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');
});

View File

@@ -1,4 +1,29 @@
import { createCanBoundTo } from '@casl/react';
import ability from '../components/Config/ability';
import React from 'react';
import { Ability } from '@casl/ability';
import { createContextualCan } from '@casl/react';
export default createCanBoundTo(ability);
import {
ItemAbility,
AbilitySubject,
InventoryAdjustment,
} from '../common/abilityOption';
export const AbilityContext = React.createContext();
export const Can = createContextualCan(AbilityContext.Consumer);
const AbilityContextProvider = (props) => {
const ability = new Ability([
{
subject: [AbilitySubject.Item],
action: [ItemAbility.Create, ItemAbility.Edit],
},
]);
return (
<AbilityContext.Provider value={ability}>
{props.children}
</AbilityContext.Provider>
);
};
export default AbilityContextProvider;

View File

@@ -1,10 +0,0 @@
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);
}

View File

@@ -1,8 +1,9 @@
import React from 'react';
import AbilityContextProvider from '../../components/Can';
/**
* Dashboard provider.
*/
export default function DashboardProvider({ children }) {
return children;
return <AbilityContextProvider>{children}</AbilityContextProvider>;
}

View File

@@ -59,6 +59,7 @@ import AvaterCell from './AvaterCell';
import { ItemsMultiSelect } from './Items';
import MoreMenuItems from './MoreMenutItems';
import { Can } from './Can';
export * from './Dialog';
export * from './Menu';
@@ -156,4 +157,5 @@ export {
Card,
AvaterCell,
MoreMenuItems,
Can,
};