diff --git a/config/router.config.js b/config/router.config.js
index 7a5f266b6f28d3d5e275d4e8f5ad9b6f6fe83cc4..5d6b4e5031a29042e5f46d99a56d9416c18015d4 100644
--- a/config/router.config.js
+++ b/config/router.config.js
@@ -28,8 +28,16 @@ module.exports = [
name: 'analysis',
component: './Dashboard/Analysis',
},
- { path: '/dashboard/monitor', name: 'monitor', component: './Dashboard/Monitor' },
- { path: '/dashboard/workplace', name: 'workplace', component: './Dashboard/Workplace' },
+ {
+ path: '/dashboard/monitor',
+ name: 'monitor',
+ component: './Dashboard/Monitor',
+ },
+ {
+ path: '/dashboard/workplace',
+ name: 'workplace',
+ component: './Dashboard/Workplace',
+ },
],
},
// forms
@@ -84,16 +92,36 @@ module.exports = [
icon: 'table',
name: 'list',
routes: [
- { path: '/list/table-list', name: 'searchtable', component: './List/TableList' },
- { path: '/list/basic-list', name: 'basiclist', component: './List/BasicList' },
- { path: '/list/card-list', name: 'cardlist', component: './List/CardList' },
+ {
+ path: '/list/table-list',
+ name: 'searchtable',
+ component: './List/TableList',
+ },
+ {
+ path: '/list/basic-list',
+ name: 'basiclist',
+ component: './List/BasicList',
+ },
+ {
+ path: '/list/card-list',
+ name: 'cardlist',
+ component: './List/CardList',
+ },
{
path: '/list/search',
name: 'searchlist',
component: './List/List',
routes: [
- { path: '/list/search/articles', name: 'articles', component: './List/Articles' },
- { path: '/list/search/projects', name: 'projects', component: './List/Projects' },
+ {
+ path: '/list/search/articles',
+ name: 'articles',
+ component: './List/Articles',
+ },
+ {
+ path: '/list/search/projects',
+ name: 'projects',
+ component: './List/Projects',
+ },
{
path: '/list/search/applications',
name: 'applications',
@@ -109,8 +137,16 @@ module.exports = [
icon: 'profile',
routes: [
// profile
- { path: '/profile/basic', name: 'basic', component: './Profile/BasicProfile' },
- { path: '/profile/advanced', name: 'advanced', component: './Profile/AdvancedProfile' },
+ {
+ path: '/profile/basic',
+ name: 'basic',
+ component: './Profile/BasicProfile',
+ },
+ {
+ path: '/profile/advanced',
+ name: 'advanced',
+ component: './Profile/AdvancedProfile',
+ },
],
},
{
@@ -119,7 +155,11 @@ module.exports = [
path: '/result',
routes: [
// result
- { path: '/result/success', name: 'success', component: './Result/Success' },
+ {
+ path: '/result/success',
+ name: 'success',
+ component: './Result/Success',
+ },
{ path: '/result/fail', name: 'fail', component: './Result/Error' },
],
},
@@ -129,9 +169,21 @@ module.exports = [
path: '/exception',
routes: [
// exception
- { path: '/exception/403', name: 'not-permission', component: './Exception/403' },
- { path: '/exception/404', name: 'not-find', component: './Exception/404' },
- { path: '/exception/500', name: 'server-error', component: './Exception/500' },
+ {
+ path: '/exception/403',
+ name: 'not-permission',
+ component: './Exception/403',
+ },
+ {
+ path: '/exception/404',
+ name: 'not-find',
+ component: './Exception/404',
+ },
+ {
+ path: '/exception/500',
+ name: 'server-error',
+ component: './Exception/500',
+ },
{
path: '/exception/trigger',
name: 'trigger',
@@ -172,7 +224,6 @@ module.exports = [
path: '/account/settings',
name: 'settings',
component: './Account/Settings/Info',
- // authority: ['admin'],
routes: [
{
path: '/account/settings',
diff --git a/src/pages/Authorized.js b/src/pages/Authorized.js
index cfd86d997ee1b20ed653c4b74c3e99e9c11b0250..8b11d9234ec7198dbcab8b09de31b6734fa826f8 100644
--- a/src/pages/Authorized.js
+++ b/src/pages/Authorized.js
@@ -2,16 +2,23 @@ import React from 'react';
import RenderAuthorized from '@/components/Authorized';
import Exception from '@/components/Exception';
import { matchRoutes } from 'react-router-config';
+import uniq from 'lodash/uniq';
const Authorized = RenderAuthorized(['admin', 'user']);
const noMatch = ;
export default ({ children, route, location }) => {
- const branch =
- matchRoutes(route.routes, location.pathname).filter(item => item.match.isExact)[0] || {};
- const { authority } = branch.route || {};
+ const routes = matchRoutes(route.routes, location.pathname);
+ let authorities = [];
+ routes.forEach(item => {
+ if (Array.isArray(item.authority)) {
+ authorities = authorities.concat(item.authority);
+ } else if (typeof item.authority === 'string') {
+ authorities.push(item.authority);
+ }
+ });
return (
-
+
{children}
);