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:
parent
0384ab8568
commit
add8639a74
@ -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
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -43,7 +43,8 @@ const actions = {
|
||||
loadMainMenu({
|
||||
sessionUuid,
|
||||
roleUuid,
|
||||
organizationUuid
|
||||
organizationUuid,
|
||||
role
|
||||
}).then(menuResponse => {
|
||||
commit('SET_ROUTES', menuResponse)
|
||||
resolve(menuResponse)
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user