diff --git a/src/layouts/DefaultLayout/components/AppSidebar/index.js b/src/layouts/DefaultLayout/components/AppSidebar/index.js
index 05e3a35..efdd7c7 100644
--- a/src/layouts/DefaultLayout/components/AppSidebar/index.js
+++ b/src/layouts/DefaultLayout/components/AppSidebar/index.js
@@ -145,6 +145,22 @@ const AppSidebar = () => {
id: 16,
enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length
},
+ {
+ label: __('Admin', 'gepafin'),
+ icon: 'pi pi-shield',
+ href: '/admin',
+ id: 20,
+ enable: intersection(permissions, [
+ 'ROOT_MANAGE_NDG',
+ 'ROOT_MANAGE_APPL_STATUS',
+ 'ROOT_MANAGE_AMENDMENT_REOPEN',
+ 'ROOT_MANAGE_AMENDMENT_EXTEND',
+ 'ROOT_MANAGE_APPL_VIEW_DELETED',
+ 'ROOT_MANAGE_APPL_DELETE_CONFIRM',
+ 'ROOT_MANAGE_APPL_DELETE',
+ 'ROOT_MANAGE_PEC_SEND'
+ ]).length
+ },
{
label: __('Log di Sistema', 'gepafin'),
icon: 'pi pi-receipt',
diff --git a/src/pages/Admin/components/ManageAmendmentExtendSection/index.js b/src/pages/Admin/components/ManageAmendmentExtendSection/index.js
new file mode 100644
index 0000000..898403f
--- /dev/null
+++ b/src/pages/Admin/components/ManageAmendmentExtendSection/index.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import { __ } from '@wordpress/i18n';
+
+const ManageAmendmentExtendSection = () => {
+ return
+
{__('Estensione soccorso istruttorio', 'gepafin')}
+
+}
+
+export default ManageAmendmentExtendSection;
diff --git a/src/pages/Admin/components/ManageAmendmentReopenSection/index.js b/src/pages/Admin/components/ManageAmendmentReopenSection/index.js
new file mode 100644
index 0000000..40b8ba4
--- /dev/null
+++ b/src/pages/Admin/components/ManageAmendmentReopenSection/index.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import { __ } from '@wordpress/i18n';
+
+const ManageAmendmentReopenSection = () => {
+ return
+
{__('Riapertura soccorso istruttorio', 'gepafin')}
+
+}
+
+export default ManageAmendmentReopenSection;
diff --git a/src/pages/Admin/components/ManageApplDeleteSection/index.js b/src/pages/Admin/components/ManageApplDeleteSection/index.js
new file mode 100644
index 0000000..ba0933e
--- /dev/null
+++ b/src/pages/Admin/components/ManageApplDeleteSection/index.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import { __ } from '@wordpress/i18n';
+
+const ManageApplDeleteSection = ({ canViewDeleted, canDeleteConfirm, canDelete }) => {
+ return
+
{__('Gestione domande eliminate', 'gepafin')}
+
+}
+
+export default ManageApplDeleteSection;
diff --git a/src/pages/Admin/components/ManageApplStatusSection/index.js b/src/pages/Admin/components/ManageApplStatusSection/index.js
new file mode 100644
index 0000000..d18e189
--- /dev/null
+++ b/src/pages/Admin/components/ManageApplStatusSection/index.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import { __ } from '@wordpress/i18n';
+
+const ManageApplStatusSection = () => {
+ return
+
{__('Gestione stato domande', 'gepafin')}
+
+}
+
+export default ManageApplStatusSection;
diff --git a/src/pages/Admin/components/ManageNdgSection/index.js b/src/pages/Admin/components/ManageNdgSection/index.js
new file mode 100644
index 0000000..0fa5a7c
--- /dev/null
+++ b/src/pages/Admin/components/ManageNdgSection/index.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import { __ } from '@wordpress/i18n';
+
+const ManageNdgSection = () => {
+ return
+
{__('Gestione NDG', 'gepafin')}
+
+}
+
+export default ManageNdgSection;
diff --git a/src/pages/Admin/index.js b/src/pages/Admin/index.js
new file mode 100644
index 0000000..9aac328
--- /dev/null
+++ b/src/pages/Admin/index.js
@@ -0,0 +1,47 @@
+import React from 'react';
+import { __ } from '@wordpress/i18n';
+import { intersection } from 'ramda';
+
+// store
+import { useStoreValue } from '../../store';
+
+// components
+import ManageNdgSection from './components/ManageNdgSection';
+import ManageApplStatusSection from './components/ManageApplStatusSection';
+import ManageAmendmentReopenSection from './components/ManageAmendmentReopenSection';
+import ManageAmendmentExtendSection from './components/ManageAmendmentExtendSection';
+import ManageApplDeleteSection from './components/ManageApplDeleteSection';
+
+const Admin = () => {
+ const permissions = useStoreValue('getPermissions');
+
+ const hasNdg = intersection(permissions, ['ROOT_MANAGE_NDG']).length > 0;
+ const hasApplStatus = intersection(permissions, ['ROOT_MANAGE_APPL_STATUS']).length > 0;
+ const hasAmendmentReopen = intersection(permissions, ['ROOT_MANAGE_AMENDMENT_REOPEN']).length > 0;
+ const hasAmendmentExtend = intersection(permissions, ['ROOT_MANAGE_AMENDMENT_EXTEND']).length > 0;
+ const hasApplDelete = intersection(permissions, [
+ 'ROOT_MANAGE_APPL_VIEW_DELETED',
+ 'ROOT_MANAGE_APPL_DELETE_CONFIRM',
+ 'ROOT_MANAGE_APPL_DELETE'
+ ]).length > 0;
+
+ const canViewDeleted = intersection(permissions, ['ROOT_MANAGE_APPL_VIEW_DELETED']).length > 0;
+ const canDeleteConfirm = intersection(permissions, ['ROOT_MANAGE_APPL_DELETE_CONFIRM']).length > 0;
+ const canDelete = intersection(permissions, ['ROOT_MANAGE_APPL_DELETE']).length > 0;
+
+ return
+
{__('Admin', 'gepafin')}
+
+ {hasNdg && <>
>}
+ {hasApplStatus && <>
>}
+ {hasAmendmentReopen && <>
>}
+ {hasAmendmentExtend && <>
>}
+ {hasApplDelete && <>
>}
+
+}
+
+export default Admin;
diff --git a/src/routes.js b/src/routes.js
index 7dd469e..be1fed1 100644
--- a/src/routes.js
+++ b/src/routes.js
@@ -56,6 +56,7 @@ import LoginConfidi from './pages/LoginConfidi';
import ResetPasswordAdmin from './pages/ResetPasswordAdmin';
import DashboardBeneficiarioConfidi from './pages/DashboardBeneficiarioConfidi';
import DashboardDirector from './pages/DashboardDirector';
+import Admin from './pages/Admin';
const routes = ({ role, chosenCompanyId }) => {
@@ -287,6 +288,9 @@ const routes = ({ role, chosenCompanyId }) => {
{'ROLE_PRE_INSTRUCTOR' === role ? : null}
{'ROLE_INSTRUCTOR_MANAGER' === role ? : null}
}/>
+
+
+ }/>
}/>
}/>