diff --git a/src/common/abilityOption.js b/src/common/abilityOption.js
index 9b140a5ff..5661b6167 100644
--- a/src/common/abilityOption.js
+++ b/src/common/abilityOption.js
@@ -115,6 +115,7 @@ export const Cashflow_Abilities = {
};
export const Report_Abilities = {
+ ALL:'all',
READ_BALANCE_SHEET: 'read-balance-sheet',
READ_TRIAL_BALANCE_SHEET: 'read-trial-balance-sheet',
READ_PROFIT_LOSS: 'read-profit-loss',
diff --git a/src/common/homepageOptions.js b/src/common/homepageOptions.js
index 6f61b7172..1a6c5440f 100644
--- a/src/common/homepageOptions.js
+++ b/src/common/homepageOptions.js
@@ -14,6 +14,7 @@ import {
Manual_Journal_Abilities,
Expense_Abilities,
Item_Abilities,
+ Report_Abilities,
} from '../common/abilityOption';
export const accountsReceivable = [
@@ -135,6 +136,8 @@ export const financialAccounting = [
),
link: '/financial-reports',
+ subject: AbilitySubject.Report,
+ ability: Report_Abilities.ALL,
},
],
},
diff --git a/src/containers/FinancialStatements/FilterFinancialReports.js b/src/containers/FinancialStatements/FilterFinancialReports.js
index 4daa38501..ea3e8c1a8 100644
--- a/src/containers/FinancialStatements/FilterFinancialReports.js
+++ b/src/containers/FinancialStatements/FilterFinancialReports.js
@@ -1,23 +1,23 @@
import { isEmpty } from 'lodash';
import { useAbilityContext } from '../../hooks';
-function useFilterFinancialReports(financial) {
+function useFilterFinancialReports(financialSection) {
const ability = useAbilityContext();
- const seaction = financial
- .map((seaction) => {
- const reports = seaction.reports.filter((report) => {
+ const section = financialSection
+ .map((section) => {
+ const reports = section.reports.filter((report) => {
return ability.can(report.ability, report.subject);
});
return {
- sectionTitle: seaction.sectionTitle,
+ sectionTitle: section.sectionTitle,
reports,
};
})
.filter(({ reports }) => !isEmpty(reports));
- return seaction;
+ return section;
}
export default useFilterFinancialReports;
diff --git a/src/containers/Homepage/ShortcutBoxesSection.js b/src/containers/Homepage/ShortcutBoxesSection.js
index cf712e952..d9bcb90f0 100644
--- a/src/containers/Homepage/ShortcutBoxesSection.js
+++ b/src/containers/Homepage/ShortcutBoxesSection.js
@@ -3,6 +3,7 @@ import { Link } from 'react-router-dom';
import { For } from 'components';
import 'style/pages/FinancialStatements/FinancialSheets.scss';
+import { useFilterShortcutBoxesSection } from './components';
function ShortcutBox({ title, link, description }) {
return (
@@ -27,5 +28,6 @@ function ShortcutBoxes({ sectionTitle, shortcuts }) {
}
export default function ShortcutBoxesSection({ section }) {
- return ;
+ const BoxSection = useFilterShortcutBoxesSection(section);
+ return ;
}
diff --git a/src/containers/Homepage/components.js b/src/containers/Homepage/components.js
new file mode 100644
index 000000000..b2701ef28
--- /dev/null
+++ b/src/containers/Homepage/components.js
@@ -0,0 +1,18 @@
+import { isEmpty } from 'lodash';
+import { useAbilityContext } from '../../hooks';
+
+export const useFilterShortcutBoxesSection = (section) => {
+ const ability = useAbilityContext();
+
+ return section
+ .map(({ sectionTitle, shortcuts }) => {
+ const shortcut = shortcuts.filter((shortcuts) => {
+ return ability.can(shortcuts.ability, shortcuts.subject);
+ });
+ return {
+ sectionTitle: sectionTitle,
+ shortcuts: shortcut,
+ };
+ })
+ .filter(({ shortcuts }) => !isEmpty(shortcuts));
+};