committed by
GitHub
2 changed files with 43 additions and 0 deletions
@ -0,0 +1,5 @@ |
|||
export default { |
|||
'/api/auth_routes': { |
|||
'/form/advanced-form': { authority: ['admin', 'user'] }, |
|||
}, |
|||
}; |
|||
@ -0,0 +1,38 @@ |
|||
import fetch from 'dva/fetch'; |
|||
|
|||
export const dva = { |
|||
config: { |
|||
onError(err) { |
|||
err.preventDefault(); |
|||
}, |
|||
}, |
|||
}; |
|||
|
|||
let authRoutes = null; |
|||
|
|||
function ergodicRoutes(routes, authKey, authority) { |
|||
routes.forEach(element => { |
|||
if (element.path === authKey) { |
|||
Object.assign(element.authority, authority || []); |
|||
} else if (element.routes) { |
|||
ergodicRoutes(element.routes, authKey, authority); |
|||
} |
|||
return element; |
|||
}); |
|||
} |
|||
|
|||
export function patchRoutes(routes) { |
|||
Object.keys(authRoutes).map(authKey => |
|||
ergodicRoutes(routes, authKey, authRoutes[authKey].authority) |
|||
); |
|||
window.g_routes = routes; |
|||
} |
|||
|
|||
export function render(oldRender) { |
|||
fetch('/api/auth_routes') |
|||
.then(res => res.json()) |
|||
.then(ret => { |
|||
authRoutes = ret; |
|||
oldRender(); |
|||
}); |
|||
} |
|||
Loading…
Reference in new issue