mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 04:10:32 +00:00
660 lines
21 KiB
JavaScript
660 lines
21 KiB
JavaScript
import { chain } from 'lodash';
|
|
import intl from 'react-intl-universal';
|
|
import {
|
|
AbilitySubject,
|
|
AccountAction,
|
|
BillAction,
|
|
CreditNoteAction,
|
|
CustomerAction,
|
|
ExpenseAction,
|
|
ItemAction,
|
|
ManualJournalAction,
|
|
PaymentMadeAction,
|
|
PaymentReceiveAction,
|
|
ReportsAction,
|
|
SaleEstimateAction,
|
|
SaleInvoiceAction,
|
|
SaleReceiptAction,
|
|
VendorAction,
|
|
VendorCreditAction,
|
|
} from './abilityOption';
|
|
|
|
export const ModulePermissionsStyle = {
|
|
Columns: 'columns',
|
|
Vertical: 'vertical',
|
|
};
|
|
|
|
const PermissionColumn = {
|
|
View: 'view',
|
|
Create: 'create',
|
|
Delete: 'delete',
|
|
Edit: 'edit',
|
|
};
|
|
|
|
export const getPermissionsSchema = () => [
|
|
{
|
|
label: intl.get('permissions.items_inventory'),
|
|
type: ModulePermissionsStyle.Columns,
|
|
serviceFullAccess: true,
|
|
columns: [
|
|
{ label: intl.get('permissions.column.view'), key: 'view' },
|
|
{ label: intl.get('permissions.column.create'), key: 'create' },
|
|
{ label: intl.get('permissions.column.edit'), key: 'edit' },
|
|
{ label: intl.get('permissions.column.delete'), key: 'delete' },
|
|
],
|
|
services: [
|
|
{
|
|
label: intl.get('permissions.items'),
|
|
subject: AbilitySubject.Item,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: ItemAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: ItemAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: ItemAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: ItemAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: ItemAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: ItemAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: ItemAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.inventory_adjustment'),
|
|
subject: AbilitySubject.InventoryAdjustment,
|
|
permissions: [
|
|
{
|
|
label: 'View',
|
|
key: ItemAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: 'Create',
|
|
key: ItemAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: ItemAction.View }],
|
|
},
|
|
{
|
|
label: 'Edit',
|
|
key: ItemAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: ItemAction.Create }],
|
|
},
|
|
{
|
|
label: 'Delete',
|
|
key: ItemAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: ItemAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.contacts'),
|
|
type: ModulePermissionsStyle.Columns,
|
|
serviceFullAccess: true,
|
|
moduleFullAccess: true,
|
|
columns: [
|
|
{ label: intl.get('permissions.column.view'), key: 'view' },
|
|
{ label: intl.get('permissions.column.create'), key: 'create' },
|
|
{ label: intl.get('permissions.column.edit'), key: 'edit' },
|
|
{ label: intl.get('permissions.column.delete'), key: 'delete' },
|
|
],
|
|
services: [
|
|
{
|
|
label: intl.get('permissions.customers'),
|
|
subject: AbilitySubject.Customer,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: CustomerAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: CustomerAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: CustomerAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: CustomerAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: CustomerAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: CustomerAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: CustomerAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.vendors'),
|
|
subject: AbilitySubject.Vendor,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: VendorAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: VendorAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: VendorAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: VendorAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: VendorAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: VendorAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: VendorAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.sales'),
|
|
type: ModulePermissionsStyle.Columns,
|
|
serviceFullAccess: true,
|
|
moduleFullAccess: true,
|
|
columns: [
|
|
{ label: intl.get('permissions.column.view'), key: 'view' },
|
|
{ label: intl.get('permissions.column.create'), key: 'create' },
|
|
{ label: intl.get('permissions.column.edit'), key: 'edit' },
|
|
{ label: intl.get('permissions.column.delete'), key: 'delete' },
|
|
],
|
|
services: [
|
|
{
|
|
label: intl.get('permissions.sale_invoice'),
|
|
subject: AbilitySubject.Invoice,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: SaleInvoiceAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: SaleInvoiceAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: SaleInvoiceAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: SaleInvoiceAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: SaleInvoiceAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: SaleInvoiceAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: SaleInvoiceAction.Edit }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.written_off_invoice'),
|
|
key: SaleInvoiceAction.Writeoff,
|
|
depend: [{ key: SaleInvoiceAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.sale_estimate'),
|
|
subject: AbilitySubject.Estimate,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: SaleEstimateAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: SaleEstimateAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: SaleEstimateAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: SaleEstimateAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: SaleEstimateAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: SaleEstimateAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: SaleEstimateAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.sale_receipt'),
|
|
subject: AbilitySubject.Receipt,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: SaleReceiptAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: SaleReceiptAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: SaleReceiptAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: SaleReceiptAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: SaleReceiptAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: SaleReceiptAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: SaleReceiptAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.credit_note'),
|
|
subject: AbilitySubject.CreditNote,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: CreditNoteAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: CreditNoteAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: CreditNoteAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: CreditNoteAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: CreditNoteAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: CreditNoteAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: CreditNoteAction.Edit }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.refund_credit_note'),
|
|
key: CreditNoteAction.Refund,
|
|
depend: [{ key: CreditNoteAction.View }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.payment_receive'),
|
|
subject: AbilitySubject.PaymentReceive,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: PaymentReceiveAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: PaymentReceiveAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: PaymentReceiveAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: PaymentReceiveAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: PaymentReceiveAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: PaymentReceiveAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: PaymentReceiveAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.purchases'),
|
|
type: ModulePermissionsStyle.Columns,
|
|
serviceFullAccess: true,
|
|
moduleFullAccess: true,
|
|
columns: [
|
|
{ label: intl.get('permissions.column.view'), key: 'view' },
|
|
{ label: intl.get('permissions.column.create'), key: 'create' },
|
|
{ label: intl.get('permissions.column.edit'), key: 'edit' },
|
|
{ label: intl.get('permissions.column.delete'), key: 'delete' },
|
|
],
|
|
services: [
|
|
{
|
|
label: intl.get('permissions.bills'),
|
|
subject: AbilitySubject.Bill,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: BillAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: BillAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: BillAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: BillAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: BillAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: BillAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: BillAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.vendor_credits'),
|
|
subject: AbilitySubject.VendorCredit,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: VendorCreditAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: VendorCreditAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: VendorCreditAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: VendorCreditAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: VendorCreditAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: VendorCreditAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: VendorCreditAction.Edit }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.refund_vendor_credit'),
|
|
key: VendorCreditAction.Refund,
|
|
depend: [{ key: VendorCreditAction.View }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.payment_made'),
|
|
subject: AbilitySubject.PaymentMade,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: PaymentMadeAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: PaymentMadeAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: PaymentMadeAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: PaymentMadeAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: PaymentMadeAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: PaymentMadeAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: PaymentMadeAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.financial_accounting'),
|
|
type: ModulePermissionsStyle.Columns,
|
|
serviceFullAccess: true,
|
|
moduleFullAccess: true,
|
|
columns: [
|
|
{ label: intl.get('permissions.column.view'), key: 'view' },
|
|
{ label: intl.get('permissions.column.create'), key: 'create' },
|
|
{ label: intl.get('permissions.column.edit'), key: 'edit' },
|
|
{ label: intl.get('permissions.column.delete'), key: 'delete' },
|
|
],
|
|
services: [
|
|
{
|
|
label: intl.get('permissions.manual_journals'),
|
|
subject: AbilitySubject.ManualJournal,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: ManualJournalAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: ManualJournalAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: ManualJournalAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: ManualJournalAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: ManualJournalAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: ManualJournalAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: ManualJournalAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.chart_of_accounts'),
|
|
subject: AbilitySubject.Account,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: AccountAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: AccountAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: AccountAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: AccountAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: AccountAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: AccountAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: AccountAction.Edit }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.transactions_locking'),
|
|
key: AccountAction.TransactionsLocking,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.expenses'),
|
|
subject: AbilitySubject.Expense,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.column.view'),
|
|
key: ExpenseAction.View,
|
|
relatedColumn: PermissionColumn.View,
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.create'),
|
|
key: ExpenseAction.Create,
|
|
relatedColumn: PermissionColumn.Create,
|
|
depend: [{ key: ExpenseAction.View }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.edit'),
|
|
key: ExpenseAction.Edit,
|
|
relatedColumn: PermissionColumn.Edit,
|
|
depend: [{ key: ExpenseAction.Create }],
|
|
},
|
|
{
|
|
label: intl.get('permissions.column.delete'),
|
|
key: ExpenseAction.Delete,
|
|
relatedColumn: PermissionColumn.Delete,
|
|
depend: [{ key: ExpenseAction.Edit }],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: intl.get('permissions.reports'),
|
|
type: ModulePermissionsStyle.Vertical,
|
|
serviceFullAccess: true,
|
|
moduleFullAccess: true,
|
|
services: [
|
|
{
|
|
label: intl.get('permissions.financial_reports'),
|
|
subject: AbilitySubject.Report,
|
|
permissions: [
|
|
{
|
|
label: intl.get('permissions.balance_sheet'),
|
|
key: ReportsAction.READ_BALANCE_SHEET,
|
|
},
|
|
{
|
|
label: intl.get('permissions.trial_balance_sheet'),
|
|
key: ReportsAction.READ_TRIAL_BALANCE_SHEET,
|
|
},
|
|
{
|
|
label: intl.get('permissions.profit_loss_sheet'),
|
|
key: ReportsAction.READ_PROFIT_LOSS,
|
|
},
|
|
{
|
|
label: intl.get('permissions.cash_flow_sheet'),
|
|
key: ReportsAction.READ_CASHFLOW,
|
|
},
|
|
{
|
|
label: intl.get('permissions.journal_sheet'),
|
|
key: ReportsAction.READ_JOURNAL,
|
|
},
|
|
{
|
|
label: intl.get('permissions.general_ledger'),
|
|
key: ReportsAction.READ_GENERAL_LEDGET,
|
|
},
|
|
{
|
|
label: intl.get('permissions.a_r_aging_summary_report'),
|
|
key: ReportsAction.READ_AR_AGING_SUMMARY,
|
|
},
|
|
{
|
|
label: intl.get('permissions.a_r_aging_summary_report'),
|
|
key: ReportsAction.READ_AP_AGING_SUMMARY,
|
|
},
|
|
{
|
|
label: intl.get('permissions.purchases_by_items'),
|
|
key: ReportsAction.READ_PURCHASES_BY_ITEMS,
|
|
},
|
|
{
|
|
label: intl.get('permissions.sales_by_items'),
|
|
key: ReportsAction.READ_SALES_BY_ITEMS,
|
|
},
|
|
{
|
|
label: intl.get('permissions.customers_transactions'),
|
|
key: ReportsAction.READ_CUSTOMERS_TRANSACTIONS,
|
|
},
|
|
{
|
|
label: intl.get('permissions.vendors_transactions'),
|
|
key: ReportsAction.READ_VENDORS_TRANSACTIONS,
|
|
},
|
|
{
|
|
label: intl.get('permissions.customers_summary_balance'),
|
|
key: ReportsAction.READ_CUSTOMERS_SUMMARY_BALANCE,
|
|
},
|
|
{
|
|
label: intl.get('permissions.vendors_summary_balance'),
|
|
key: ReportsAction.READ_VENDORS_SUMMARY_BALANCE,
|
|
},
|
|
{
|
|
label: intl.get('permissions.inventory_valuation_summary'),
|
|
key: ReportsAction.READ_INVENTORY_VALUATION_SUMMARY,
|
|
},
|
|
{
|
|
label: intl.get('permissions.inventory_items_details'),
|
|
key: ReportsAction.READ_INVENTORY_ITEM_DETAILS,
|
|
},
|
|
{
|
|
label: intl.get('permissions.cashflow_account_transactions'),
|
|
key: ReportsAction.READ_CASHFLOW_ACCOUNT_TRANSACTION,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
];
|
|
|
|
export function getPermissionsSchemaService(subject) {
|
|
const permissions = getPermissionsSchema();
|
|
|
|
return chain(permissions)
|
|
.map((perm) => perm.services)
|
|
.flatten()
|
|
.find((service) => service.subject === subject)
|
|
.value();
|
|
}
|
|
|
|
export function getPermissionsSchemaServices() {
|
|
const permissions = getPermissionsSchema();
|
|
|
|
return chain(permissions)
|
|
.map((module) => module.services)
|
|
.flatten()
|
|
.value();
|
|
}
|