diff --git a/src/router/modules/ADempiere/menu.js b/src/router/modules/ADempiere/menu.js index 8b7949ae..1824de49 100644 --- a/src/router/modules/ADempiere/menu.js +++ b/src/router/modules/ADempiere/menu.js @@ -15,7 +15,8 @@ import Layout from '@/layout' export function loadMainMenu({ sessionUuid, roleUuid = 0, - organizationUuid = 0 + organizationUuid = 0, + role }) { return new Promise(resolve => { requestMenu({ @@ -54,8 +55,8 @@ export function loadMainMenu({ } asyncRoutesMap.push(optionMenu) }) - - resolve(staticRoutes.concat(asyncRoutesMap)) + const permiseStactiRoutes = hidenStactiRoutes({ staticRoutes, permiseRole: role }) + resolve(permiseStactiRoutes.concat(asyncRoutesMap)) }).catch(error => { console.warn(`Error getting menu: ${error.message}. Code: ${error.code}.`) }) @@ -150,3 +151,23 @@ function getRouteFromMenuItem({ menu, roleUuid, organizationUuid }) { } return optionMenu } + +/** + * Grant visibility to static routes based on current role permissions + * @author elsiosanchez + * @param {object} staticRoutes static routes + * @param {object} permiseRole role permissions + */ +function hidenStactiRoutes({ staticRoutes, permiseRole }) { + return staticRoutes.map(route => { + if (route.path === '/ProductInfo') { + return { + ...route, + hidden: !permiseRole.isAllowInfoProduct + } + } + return { + ...route + } + }) +} diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 7420b9cc..c388625d 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -43,7 +43,8 @@ const actions = { loadMainMenu({ sessionUuid, roleUuid, - organizationUuid + organizationUuid, + role }).then(menuResponse => { commit('SET_ROUTES', menuResponse) resolve(menuResponse) diff --git a/src/utils/ADempiere/apiConverts/user.js b/src/utils/ADempiere/apiConverts/user.js index 2d2d6b87..32881c15 100644 --- a/src/utils/ADempiere/apiConverts/user.js +++ b/src/utils/ADempiere/apiConverts/user.js @@ -34,6 +34,21 @@ export function convertRole(roleToConvert) { description, clientId: roleToConvert.client_id, clientName: roleToConvert.client_name, + isAllowHtmlView: roleToConvert.is_allow_html_view, + isAllowInfoAccount: roleToConvert.is_allow_info_account, + isAllowInfoAsset: roleToConvert.is_allow_info_asset, + isAllowInfoBusinessPartner: roleToConvert.is_allow_info_business_partner, + isAllowInfoCashJournal: roleToConvert.is_allow_info_cash_journal, + isAllowInfoCrp: roleToConvert.is_allow_info_crp, + isAllowInfoInOut: roleToConvert.is_allow_info_in_out, + isAllowInfoInvoice: roleToConvert.is_allow_info_invoice, + isAllowInfoMrp: roleToConvert.is_allow_info_mrp, + isAllowInfoOrder: roleToConvert.is_allow_info_order, + isAllowInfoPayment: roleToConvert.is_allow_info_payment, + isAllowInfoProduct: roleToConvert.is_allow_info_product, + isAllowInfoResource: roleToConvert.is_allow_info_resource, + isAllowInfoSchedule: roleToConvert.is_allow_info_schedule, + isAllowXlsView: roleToConvert.is_allow_xls_view, isCanExport: roleToConvert.is_can_export, isCanReport: roleToConvert.is_can_report, isPersonalAccess: roleToConvert.is_personal_access,