1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-10 20:39:48 +08:00

visibility to static routes based on current role permissions (#554)

* Grant visibility to static routes based on current role permissions

* minimal change
This commit is contained in:
Elsio Sanchez 2020-12-02 16:02:09 -04:00 committed by GitHub
parent 0384ab8568
commit add8639a74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 4 deletions

View File

@ -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 <elsiosanches@gmail.com>
* @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
}
})
}

View File

@ -43,7 +43,8 @@ const actions = {
loadMainMenu({
sessionUuid,
roleUuid,
organizationUuid
organizationUuid,
role
}).then(menuResponse => {
commit('SET_ROUTES', menuResponse)
resolve(menuResponse)

View File

@ -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,