diff --git a/spug_web/src/components/AuthCard.js b/spug_web/src/components/AuthCard.js new file mode 100644 index 0000000..7f3cdc0 --- /dev/null +++ b/spug_web/src/components/AuthCard.js @@ -0,0 +1,12 @@ +import React from 'react'; +import {Card} from 'antd'; +import { hasPermission } from 'libs'; + + +export default function AuthCard(props) { + let disabled = props.disabled === undefined ? false : props.disabled; + if (props.auth && !hasPermission(props.auth)) { + disabled = true; + } + return disabled ? null : {props.children} +} \ No newline at end of file diff --git a/spug_web/src/components/index.js b/spug_web/src/components/index.js index de26fda..1669ca9 100644 --- a/spug_web/src/components/index.js +++ b/spug_web/src/components/index.js @@ -3,6 +3,7 @@ import SearchForm from './SearchForm'; import LinkButton from './LinkButton'; import AuthButton from './AuthButton'; import AuthLink from './AuthLink'; +import AuthCard from './AuthCard'; import AuthDiv from './AuthDiv'; import ACEditor from './ACEditor'; @@ -12,6 +13,7 @@ export { LinkButton, AuthButton, AuthLink, + AuthCard, AuthDiv, ACEditor, } \ No newline at end of file diff --git a/spug_web/src/menus.js b/spug_web/src/menus.js index 3ed9f50..7345c84 100644 --- a/spug_web/src/menus.js +++ b/spug_web/src/menus.js @@ -30,10 +30,10 @@ export default [ ] }, { - icon: 'setting', title: '系统管理', child: [ - {title: '账户管理', path: '/system/account'}, - {title: '角色管理', path: '/system/role'}, - {title: '系统设置', path: '/system/setting'}, + icon: 'setting', title: '系统管理', auth: "system.account.view|system.role.view|system.setting.view", child: [ + {title: '账户管理', auth: 'system.account.view', path: '/system/account'}, + {title: '角色管理', auth: 'system.role.view', path: '/system/role'}, + {title: '系统设置', auth: 'system.setting.view', path: '/system/setting'}, ] }, ] \ No newline at end of file diff --git a/spug_web/src/pages/alarm/alarm/index.js b/spug_web/src/pages/alarm/alarm/index.js index 4bf62df..52267ae 100644 --- a/spug_web/src/pages/alarm/alarm/index.js +++ b/spug_web/src/pages/alarm/alarm/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm } from 'components'; +import { SearchForm, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -17,6 +17,6 @@ export default observer(function () { - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/alarm/contact/index.js b/spug_web/src/pages/alarm/contact/index.js index 6653331..63ed8d9 100644 --- a/spug_web/src/pages/alarm/contact/index.js +++ b/spug_web/src/pages/alarm/contact/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -20,6 +20,6 @@ export default observer(function () { - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/alarm/group/index.js b/spug_web/src/pages/alarm/group/index.js index bdb2441..92d3433 100644 --- a/spug_web/src/pages/alarm/group/index.js +++ b/spug_web/src/pages/alarm/group/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -20,6 +20,6 @@ export default observer(function () { - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/config/app/index.js b/spug_web/src/pages/config/app/index.js index 1c0f302..2dadee7 100644 --- a/spug_web/src/pages/config/app/index.js +++ b/spug_web/src/pages/config/app/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import ComForm from './Form'; import Rel from './Rel'; @@ -9,7 +9,7 @@ import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -24,6 +24,6 @@ export default observer(function () { {store.formVisible && } {store.relVisible && } - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/config/environment/index.js b/spug_web/src/pages/config/environment/index.js index 68f55d9..cf8cc9c 100644 --- a/spug_web/src/pages/config/environment/index.js +++ b/spug_web/src/pages/config/environment/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -20,6 +20,6 @@ export default observer(function () { - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/config/service/index.js b/spug_web/src/pages/config/service/index.js index ef6f156..b57b89d 100644 --- a/spug_web/src/pages/config/service/index.js +++ b/spug_web/src/pages/config/service/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> diff --git a/spug_web/src/pages/deploy/app/index.js b/spug_web/src/pages/deploy/app/index.js index 5aca3b9..5924e03 100644 --- a/spug_web/src/pages/deploy/app/index.js +++ b/spug_web/src/pages/deploy/app/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import ComForm from './Form'; import Ext1Form from './Ext1Form'; @@ -11,7 +11,7 @@ import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -28,6 +28,6 @@ export default observer(function () { {store.addVisible && } {store.ext1Visible && } {store.ext2Visible && } - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/deploy/request/index.js b/spug_web/src/pages/deploy/request/index.js index 2925f7a..2e7b9d7 100644 --- a/spug_web/src/pages/deploy/request/index.js +++ b/spug_web/src/pages/deploy/request/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import SelectApp from './SelectApp'; import Ext1Form from './Ext1Form'; import Ext2Form from './Ext2Form'; @@ -11,7 +11,7 @@ import store from './store'; export default observer(function () { return ( - + store.f_app_name = e.target.value} placeholder="请输入"/> @@ -31,6 +31,6 @@ export default observer(function () { {store.ext1Visible && } {store.ext2Visible && } {store.approveVisible && } - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/exec/task/index.js b/spug_web/src/pages/exec/task/index.js index 538e8dc..033ff77 100644 --- a/spug_web/src/pages/exec/task/index.js +++ b/spug_web/src/pages/exec/task/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Form, Button, Tag } from 'antd'; -import { ACEditor } from 'components'; +import { ACEditor, AuthCard } from 'components'; import HostSelector from './HostSelector'; import TemplateSelector from './TemplateSelector'; import ExecConsole from './ExecConsole'; @@ -29,7 +29,7 @@ class TaskIndex extends React.Component { render() { const {body, token} = this.state; return ( - +
{store.hosts.map(item => ( @@ -48,7 +48,7 @@ class TaskIndex extends React.Component { {store.showHost && store.hosts = hosts}/>} {store.showTemplate && this.setState({body})}/>} {store.showConsole && } - + ) } } diff --git a/spug_web/src/pages/exec/template/index.js b/spug_web/src/pages/exec/template/index.js index a7ac594..c2bf5ae 100644 --- a/spug_web/src/pages/exec/template/index.js +++ b/spug_web/src/pages/exec/template/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Select, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_zone = v}> @@ -27,6 +27,6 @@ export default observer(function () { - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/login/index.js b/spug_web/src/pages/login/index.js index a2d8def..ef1e1f3 100644 --- a/spug_web/src/pages/login/index.js +++ b/spug_web/src/pages/login/index.js @@ -47,7 +47,7 @@ class LoginIndex extends React.Component { if (history.location.state && history.location.state['from']) { history.push(history.location.state['from']) } else { - history.push('/home') + history.push('/welcome') } }; diff --git a/spug_web/src/pages/monitor/index.js b/spug_web/src/pages/monitor/index.js index a25e762..ddff341 100644 --- a/spug_web/src/pages/monitor/index.js +++ b/spug_web/src/pages/monitor/index.js @@ -1,12 +1,12 @@ import React from 'react'; import { Card, Input, Select, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -28,6 +28,6 @@ export default function () { - + ) } \ No newline at end of file diff --git a/spug_web/src/pages/schedule/index.js b/spug_web/src/pages/schedule/index.js index 66269e2..a74a261 100644 --- a/spug_web/src/pages/schedule/index.js +++ b/spug_web/src/pages/schedule/index.js @@ -1,13 +1,13 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Select, Button } from 'antd'; -import { SearchForm, AuthDiv } from 'components'; +import { SearchForm, AuthDiv, AuthCard } from 'components'; import ComTable from './Table'; import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -25,6 +25,6 @@ export default function () { - + ) } \ No newline at end of file diff --git a/spug_web/src/pages/system/role/index.js b/spug_web/src/pages/system/role/index.js index 20f1828..4091a49 100644 --- a/spug_web/src/pages/system/role/index.js +++ b/spug_web/src/pages/system/role/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { observer } from 'mobx-react'; import { Card, Input, Button } from 'antd'; -import { SearchForm } from 'components'; +import { SearchForm, AuthCard } from 'components'; import ComTable from './Table'; import ComForm from './Form'; import PagePerm from './PagePerm'; @@ -10,7 +10,7 @@ import store from './store'; export default observer(function () { return ( - + store.f_name = e.target.value} placeholder="请输入"/> @@ -26,6 +26,6 @@ export default observer(function () { {store.formVisible && } {store.pagePermVisible && } {store.deployPermVisible && } - + ) }) \ No newline at end of file diff --git a/spug_web/src/pages/system/setting/index.js b/spug_web/src/pages/system/setting/index.js index e490d75..06774fb 100644 --- a/spug_web/src/pages/system/setting/index.js +++ b/spug_web/src/pages/system/setting/index.js @@ -1,5 +1,6 @@ import React from 'react'; import { Menu } from 'antd'; +import {AuthDiv} from 'components'; import BasicSetting from './BasicSetting'; import AlarmSetting from './AlarmSetting'; import MailServer from './MailServer'; @@ -23,7 +24,7 @@ class Index extends React.Component { render() { const {selectedKeys} = this.state; return ( -
+
} {selectedKeys[0] === 'service' && }
-
+ ) } } diff --git a/spug_web/src/pages/welcome/index.js b/spug_web/src/pages/welcome/index.js new file mode 100644 index 0000000..951586c --- /dev/null +++ b/spug_web/src/pages/welcome/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import {Card } from 'antd'; + +export default function (props) { + return ( + +
{localStorage.getItem('nickname')}, 欢迎你
+
+ ) +} \ No newline at end of file diff --git a/spug_web/src/pages/welcome/routes.js b/spug_web/src/pages/welcome/routes.js new file mode 100644 index 0000000..e230da8 --- /dev/null +++ b/spug_web/src/pages/welcome/routes.js @@ -0,0 +1,6 @@ +import { makeRoute } from 'libs/router'; +import Index from './index'; + +export default [ + makeRoute('', Index), +] \ No newline at end of file diff --git a/spug_web/src/routes.js b/spug_web/src/routes.js index 916d48e..61b2e86 100644 --- a/spug_web/src/routes.js +++ b/spug_web/src/routes.js @@ -1,5 +1,6 @@ import { makeModuleRoute } from "./libs/router"; +import welcomeRoues from './pages/welcome/routes'; import homeRoutes from './pages/home/routes'; import hostRoutes from './pages/host/routes'; import systemRoutes from './pages/system/routes'; @@ -12,6 +13,7 @@ import deployRoutes from './pages/deploy/routes'; export default [ + makeModuleRoute('/welcome', welcomeRoues), makeModuleRoute('/home', homeRoutes), makeModuleRoute('/host', hostRoutes), makeModuleRoute('/system', systemRoutes),