feat: universal search permissions access control.

This commit is contained in:
a.bouhuolia
2021-11-27 17:22:29 +02:00
parent 56ab0a68e2
commit 3db00f6f70
14 changed files with 142 additions and 39 deletions

View File

@@ -5,6 +5,8 @@ import intl from 'react-intl-universal';
import { Choose, T, Icon } from 'components';
import { RESOURCES_TYPES } from "common/resourcesTypes";
import { AbilitySubject, SaleEstimateAction } from '../../../../common/abilityOption';
import withDrawerActions from "../../../Drawer/withDrawerActions";
/**
@@ -110,5 +112,9 @@ export const universalSearchEstimateBind = () => ({
optionItemLabel: intl.get('estimates'),
selectItemAction: EstimateUniversalSearchSelect,
itemRenderer: EstimateUniversalSearchItem,
itemSelect: transformEstimatesToSearch
itemSelect: transformEstimatesToSearch,
permission: {
ability: SaleEstimateAction.View,
subject: AbilitySubject.Estimate,
},
});

View File

@@ -3,10 +3,13 @@ import intl from 'react-intl-universal';
import { MenuItem } from '@blueprintjs/core';
import { T, Choose, Icon } from 'components';
import { highlightText } from 'utils';
import { RESOURCES_TYPES } from 'common/resourcesTypes';
import {
AbilitySubject,
SaleInvoiceAction,
} from '../../../common/abilityOption';
import withDrawerActions from '../../Drawer/withDrawerActions';
/**
@@ -118,4 +121,8 @@ export const universalSearchInvoiceBind = () => ({
selectItemAction: InvoiceUniversalSearchSelect,
itemRenderer: InvoiceUniversalSearchItem,
itemSelect: transformInvoicesToSearch,
permission: {
ability: SaleInvoiceAction.View,
subject: AbilitySubject.Invoice,
},
});

View File

@@ -2,13 +2,17 @@ import React from 'react';
import { MenuItem } from '@blueprintjs/core';
import intl from 'react-intl-universal';
import { RESOURCES_TYPES } from "../../../common/resourcesTypes";
import withDrawerActions from "../../Drawer/withDrawerActions";
import { RESOURCES_TYPES } from '../../../common/resourcesTypes';
import withDrawerActions from '../../Drawer/withDrawerActions';
import { highlightText } from 'utils';
import { Icon } from 'components';
import {
AbilitySubject,
PaymentReceiveAction,
} from '../../../common/abilityOption';
/**
* Payment receive universal search item select action.
* Payment receive universal search item select action.
*/
function PaymentReceiveUniversalSearchSelectComponent({
// #ownProps
@@ -19,7 +23,9 @@ function PaymentReceiveUniversalSearchSelectComponent({
openDrawer,
}) {
if (resourceType === RESOURCES_TYPES.PAYMENT_RECEIVE) {
openDrawer('payment-receive-detail-drawer', { paymentReceiveId: resourceId });
openDrawer('payment-receive-detail-drawer', {
paymentReceiveId: resourceId,
});
}
return null;
}
@@ -59,7 +65,7 @@ export function PaymentReceiveUniversalSearchItem(
/**
* Transformes payment receives to search.
*/
const paymentReceivesToSearch = (payment) => ({
const paymentReceivesToSearch = (payment) => ({
id: payment.id,
text: payment.customer.display_name,
subText: payment.formatted_payment_date,
@@ -70,10 +76,14 @@ export function PaymentReceiveUniversalSearchItem(
/**
* Binds universal search payment receive configure.
*/
export const universalSearchPaymentReceiveBind = () => ({
export const universalSearchPaymentReceiveBind = () => ({
resourceType: RESOURCES_TYPES.PAYMENT_RECEIVE,
optionItemLabel: intl.get('payment_receives'),
selectItemAction: PaymentReceiveUniversalSearchSelect,
itemRenderer: PaymentReceiveUniversalSearchItem,
itemSelect: paymentReceivesToSearch,
permission: {
ability: PaymentReceiveAction.View,
subject: AbilitySubject.PaymentReceive,
},
});

View File

@@ -1,16 +1,18 @@
import React from 'react';
import intl from 'react-intl-universal';
import { MenuItem } from '@blueprintjs/core';
import { Icon, Choose, T } from 'components';
import { RESOURCES_TYPES } from "../../../common/resourcesTypes";
import withDrawerActions from "../../Drawer/withDrawerActions";
import { RESOURCES_TYPES } from '../../../common/resourcesTypes';
import withDrawerActions from '../../Drawer/withDrawerActions';
import {
AbilitySubject,
SaleReceiptAction,
} from '../../../common/abilityOption';
/**
* Receipt universal search item select action.
* Receipt universal search item select action.
*/
function ReceiptUniversalSearchSelectComponent({
// #ownProps
@@ -39,11 +41,15 @@ function ReceiptStatus({ receipt }) {
return (
<Choose>
<Choose.When condition={receipt.is_closed}>
<span class="closed"><T id={'closed'} /></span>
<span class="closed">
<T id={'closed'} />
</span>
</Choose.When>
<Choose.Otherwise>
<span class="draft"><T id={'draft'} /></span>
<span class="draft">
<T id={'draft'} />
</span>
</Choose.Otherwise>
</Choose>
);
@@ -100,4 +106,8 @@ export const universalSearchReceiptBind = () => ({
selectItemAction: ReceiptUniversalSearchSelect,
itemRenderer: ReceiptUniversalSearchItem,
itemSelect: transformReceiptsToSearch,
permission: {
ability: SaleReceiptAction.View,
subject: AbilitySubject.Receipt,
},
});