@@ -5,9 +5,21 @@ import { asyncRoutes, constantRoutes } from '@/router'
55 * @param roles
66 * @param route
77 */
8- function hasPermission ( roles , route ) {
9- if ( route . meta && route . meta . roles ) {
10- return roles . some ( role => route . meta . roles . includes ( role ) )
8+ // function hasPermission(roles, route) {
9+ // if (route.meta && route.meta.roles) {
10+ // return roles.some(role => route.meta.roles.includes(role))
11+ // } else {
12+ // return true
13+ // }
14+ // }
15+
16+ function hasAuthorization ( authorization , route ) {
17+ if ( route . meta && route . meta . auth ) {
18+ return authorization . some ( auth => {
19+ return route . meta . auth . some ( routeAuth => {
20+ return routeAuth === auth
21+ } )
22+ } )
1123 } else {
1224 return true
1325 }
@@ -18,14 +30,14 @@ function hasPermission(roles, route) {
1830 * @param routes asyncRoutes
1931 * @param roles
2032 */
21- export function filterAsyncRoutes ( routes , roles ) {
33+ export function filterAsyncRoutes ( routes , auths ) {
2234 const res = [ ]
2335
2436 routes . forEach ( route => {
2537 const tmp = { ...route }
26- if ( hasPermission ( roles , tmp ) ) {
38+ if ( hasAuthorization ( auths , tmp ) ) {
2739 if ( tmp . children ) {
28- tmp . children = filterAsyncRoutes ( tmp . children , roles )
40+ tmp . children = filterAsyncRoutes ( tmp . children , auths )
2941 }
3042 res . push ( tmp )
3143 }
@@ -47,14 +59,10 @@ const mutations = {
4759}
4860
4961const actions = {
50- generateRoutes ( { commit } , roles ) {
62+ generateRoutes ( { commit } , auths ) {
63+ console . log ( auths )
5164 return new Promise ( resolve => {
52- let accessedRoutes
53- if ( roles . includes ( 'admin' ) ) {
54- accessedRoutes = asyncRoutes || [ ]
55- } else {
56- accessedRoutes = filterAsyncRoutes ( asyncRoutes , roles )
57- }
65+ const accessedRoutes = filterAsyncRoutes ( asyncRoutes , auths )
5866 commit ( 'SET_ROUTES' , accessedRoutes )
5967 resolve ( accessedRoutes )
6068 } )
0 commit comments