From 719302b241b11946206bd03688c97804dbc97dd4 Mon Sep 17 00:00:00 2001 From: elforjani13 <39470382+elforjani13@users.noreply.github.com> Date: Tue, 23 Nov 2021 22:15:02 +0200 Subject: [PATCH] feat: add expense ability. --- src/common/abilityOption.js | 59 +++++++++++++++---- src/components/Can.js | 21 ++++--- .../ExpenseDrawer/ExpenseDrawerActionBar.js | 39 +++++++----- .../ExpensesLanding/ExpenseActionsBar.js | 20 ++++--- .../Expenses/ExpensesLanding/components.js | 46 +++++++++------ 5 files changed, 123 insertions(+), 62 deletions(-) diff --git a/src/common/abilityOption.js b/src/common/abilityOption.js index 757e36c1f..44771dfb2 100644 --- a/src/common/abilityOption.js +++ b/src/common/abilityOption.js @@ -1,14 +1,19 @@ export const AbilitySubject = { Item: 'Item', - Inventory_Adjustment: 'Inventory_Adjustment', - Estimate: 'Estimate', - Invoice: 'Invoice', - Receipt: 'Receipt', + Inventory_Adjustment: 'InventoryAdjustment', + Estimate: 'SaleEstimate', + Invoice: 'SaleInvoice', + Receipt: 'SaleReceipt', PaymentReceive: 'PaymentReceive', Bill: 'Bill', PaymentMade: 'PaymentMade', Customer: 'Customer', Vendor: 'Vendor', + Account: 'Account', + ManualJournal: 'ManualJournal', + Expense: 'Expense', + Cashflow: 'Cashflow', + Report: 'Report', }; export const Item_Abilities = { @@ -24,14 +29,14 @@ export const Inventory_Adjustment_Abilities = { Delete: 'delete', }; -export const SaleEstimate = { +export const Estimate_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; -export const SaleInvoice = { +export const Invoice_Abilities = { View: 'view', Create: 'create', Edit: 'edit', @@ -39,42 +44,72 @@ export const SaleInvoice = { BadDebt: 'bad-debt', }; -export const SaleReceipt = { +export const Receipt_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; -export const PaymentReceive = { +export const Payment_Receive_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; -export const Bill = { +export const Bill_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; -export const PaymentMade = { +export const Payment_Made_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; -export const CustomerAbilities = { + +export const Customer_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; -export const VendorAbilities = { + +export const Vendor_Abilities = { View: 'view', Create: 'create', Edit: 'edit', Delete: 'delete', }; + +export const Account_Abilities = { + View: 'view', + Create: 'create', + Edit: 'edit', + Delete: 'delete', + TransactionsLocking: 'TransactionsLocking', +}; + +export const Manual_Journal_Abilities = { + View: 'view', + Create: 'create', + Edit: 'edit', + Delete: 'delete', +}; + +export const Expense_Abilities = { + View: 'view', + Create: 'create', + Edit: 'edit', + Delete: 'delete', +}; + +export const Cashflow__Abilities = { + View: 'view', + Create: 'create', + Delete: 'delete', +}; diff --git a/src/components/Can.js b/src/components/Can.js index 355e1610e..a24a8d1f4 100644 --- a/src/components/Can.js +++ b/src/components/Can.js @@ -6,12 +6,15 @@ import { Item_Abilities, AbilitySubject, Inventory_Adjustment_Abilities, - SaleEstimate, - SaleInvoice, - SaleReceipt, + Estimate_Abilities, + Invoice_Abilities, + Receipt_Abilities, PaymentReceive, - Bill, - PaymentMade, + Bill_Abilities, + Payment_Made_Abilities, + Customer_Abilities, + Vendor_Abilities, + Account_Abilities, } from '../common/abilityOption'; export const AbilityContext = React.createContext(); @@ -20,12 +23,12 @@ export const Can = createContextualCan(AbilityContext.Consumer); const AbilityContextProvider = (props) => { const ability = new Ability([ { - subject: [AbilitySubject.PaymentMade], - action: [PaymentMade.Edit], + subject: [AbilitySubject.Account], + action: [Account_Abilities.Create], }, { - subject: [AbilitySubject.Bill], - action: [Bill.Create], + subject: [AbilitySubject.Invoice], + action: [], }, ]); diff --git a/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js b/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js index f4472c86c..caea9001d 100644 --- a/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js +++ b/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js @@ -8,8 +8,11 @@ import { Intent, NavbarDivider, } from '@blueprintjs/core'; -import { FormattedMessage as T } from 'components'; - +import { Can, FormattedMessage as T } from 'components'; +import { + Expense_Abilities, + AbilitySubject, +} from '../../../common/abilityOption'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import withAlertsActions from 'containers/Alert/withAlertActions'; import withDrawerActions from 'containers/Drawer/withDrawerActions'; @@ -44,20 +47,24 @@ function ExpenseDrawerActionBar({ return ( -