| 123456789101112131415161718192021222324252627282930313233 |
- // 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
- }
- }
|