mirror of
https://github.com/PanJiaChen/vue-element-admin.git
synced 2025-08-13 23:20:12 +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({
|
export function loadMainMenu({
|
||||||
sessionUuid,
|
sessionUuid,
|
||||||
roleUuid = 0,
|
roleUuid = 0,
|
||||||
organizationUuid = 0
|
organizationUuid = 0,
|
||||||
|
role
|
||||||
}) {
|
}) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
requestMenu({
|
requestMenu({
|
||||||
@ -54,8 +55,8 @@ export function loadMainMenu({
|
|||||||
}
|
}
|
||||||
asyncRoutesMap.push(optionMenu)
|
asyncRoutesMap.push(optionMenu)
|
||||||
})
|
})
|
||||||
|
const permiseStactiRoutes = hidenStactiRoutes({ staticRoutes, permiseRole: role })
|
||||||
resolve(staticRoutes.concat(asyncRoutesMap))
|
resolve(permiseStactiRoutes.concat(asyncRoutesMap))
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
console.warn(`Error getting menu: ${error.message}. Code: ${error.code}.`)
|
console.warn(`Error getting menu: ${error.message}. Code: ${error.code}.`)
|
||||||
})
|
})
|
||||||
@ -150,3 +151,23 @@ function getRouteFromMenuItem({ menu, roleUuid, organizationUuid }) {
|
|||||||
}
|
}
|
||||||
return optionMenu
|
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({
|
loadMainMenu({
|
||||||
sessionUuid,
|
sessionUuid,
|
||||||
roleUuid,
|
roleUuid,
|
||||||
organizationUuid
|
organizationUuid,
|
||||||
|
role
|
||||||
}).then(menuResponse => {
|
}).then(menuResponse => {
|
||||||
commit('SET_ROUTES', menuResponse)
|
commit('SET_ROUTES', menuResponse)
|
||||||
resolve(menuResponse)
|
resolve(menuResponse)
|
||||||
|
@ -34,6 +34,21 @@ export function convertRole(roleToConvert) {
|
|||||||
description,
|
description,
|
||||||
clientId: roleToConvert.client_id,
|
clientId: roleToConvert.client_id,
|
||||||
clientName: roleToConvert.client_name,
|
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,
|
isCanExport: roleToConvert.is_can_export,
|
||||||
isCanReport: roleToConvert.is_can_report,
|
isCanReport: roleToConvert.is_can_report,
|
||||||
isPersonalAccess: roleToConvert.is_personal_access,
|
isPersonalAccess: roleToConvert.is_personal_access,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user