// eslint-disable-next-line func-names export default function (initialState) { const { roles = [], currentUser = {}, permData = {} } = initialState || {} const authPermDataFilter = route => { if (currentUser.isAdmin) { return true } const name = route.path?.match(/\/(\w*)\//)[1] if (name && permData[name] && permData[name]?.length) { return true } return false } const authRouteFilter = route => { if (currentUser.isAdmin) { return true } if (roles.filter(r => r.endsWith('_access')).includes(`${route.name}_access`)) { if (route.validatePerm) { return authPermDataFilter(route) } return true } return false } return { authRouteFilter, authPermDataFilter } }