提交 608d5998 编写于 作者: 陈帅

fix #2291 Increase authority judgment

上级 9fff7f84
......@@ -16,6 +16,7 @@ import logo from '../assets/logo.svg';
import Footer from './Footer';
import Header from './Header';
import Context from './MenuContext';
import Exception403 from '../pages/Exception/403';
const { Content } = Layout;
......@@ -76,6 +77,7 @@ class BasicLayout extends React.PureComponent {
this.getPageTitle = memoizeOne(this.getPageTitle);
this.getBreadcrumbNameMap = memoizeOne(this.getBreadcrumbNameMap, isEqual);
this.breadcrumbNameMap = this.getBreadcrumbNameMap();
this.matchParamsPath = memoizeOne(this.matchParamsPath, isEqual);
}
state = {
......@@ -156,14 +158,16 @@ class BasicLayout extends React.PureComponent {
return routerMap;
}
matchParamsPath = pathname => {
const pathKey = Object.keys(this.breadcrumbNameMap).find(key =>
pathToRegexp(key).test(pathname)
);
return this.breadcrumbNameMap[pathKey];
};
getPageTitle = pathname => {
let currRouterData = null;
// match params path
Object.keys(this.breadcrumbNameMap).forEach(key => {
if (pathToRegexp(key).test(pathname)) {
currRouterData = this.breadcrumbNameMap[key];
}
});
const currRouterData = this.matchParamsPath(pathname);
if (!currRouterData) {
return 'Ant Design Pro';
}
......@@ -221,6 +225,7 @@ class BasicLayout extends React.PureComponent {
const { isMobile } = this.state;
const isTop = PropsLayout === 'topmenu';
const menuData = this.getMenuData();
const routerConfig = this.matchParamsPath(pathname);
const layout = (
<Layout>
{isTop && !isMobile ? null : (
......@@ -247,12 +252,15 @@ class BasicLayout extends React.PureComponent {
isMobile={isMobile}
{...this.props}
/>
<Content style={this.getContentStyle()}>{children}</Content>
<Content style={this.getContentStyle()}>
<Authorized authority={routerConfig.authority} noMatch={<Exception403 />}>
{children}
</Authorized>
</Content>
<Footer />
</Layout>
</Layout>
);
return (
<React.Fragment>
<DocumentTitle title={this.getPageTitle(pathname)}>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册