diff --git a/spug_web/src/pages/login/index.js b/spug_web/src/pages/login/index.js index 4512f53..1cfbbee 100644 --- a/spug_web/src/pages/login/index.js +++ b/spug_web/src/pages/login/index.js @@ -25,7 +25,8 @@ class LoginIndex extends React.Component { title: '安全警告', className: styles.tips, content:
- 未能获取到客户端的真实IP,无法提供基于请求来源IP的合法性验证,详细信息请参考官方文档。 + 未能获取到客户端的真实IP,无法提供基于请求来源IP的合法性验证,详细信息请参考 + 官方文档
, onOk: () => this.doLogin(data) }) diff --git a/spug_web/src/pages/system/role/DeployPerm.js b/spug_web/src/pages/system/role/DeployPerm.js index f47436f..c3b6dc1 100644 --- a/spug_web/src/pages/system/role/DeployPerm.js +++ b/spug_web/src/pages/system/role/DeployPerm.js @@ -5,6 +5,7 @@ import http from 'libs/http'; import envStore from 'pages/config/environment/store'; import appStore from 'pages/config/app/store'; import store from './store'; +import lds from 'lodash'; @observer class DeployPerm extends React.Component { @@ -43,11 +44,13 @@ class DeployPerm extends React.Component { handleSubmit = () => { this.setState({loading: true}); - const {app, service} = store.confRel; - http.patch('/api/app/', {id: store.record.id, rel_apps: app, rel_services: service}) + if (lds.get(store.deployRel, 'envs', []).length === 0) { + message.error('请至少设置一个环境权限') + } + http.patch('/api/account/role/', {id: store.record.id, deploy_perms: store.deployRel}) .then(res => { message.success('操作成功'); - store.relVisible = false; + store.deployPermVisible = false; store.fetchRecords() }, () => this.setState({loading: false})) }; @@ -62,8 +65,14 @@ class DeployPerm extends React.Component { onCancel={() => store.deployPermVisible = false} confirmLoading={this.state.loading} onOk={this.handleSubmit}> - + 发布权限仅影响发布功能的发布对象,页面功能权限请在功能权限中设置。, +
如果需要发布权限,请至少设置一个有权限操作的环境,否则无法正常发布。
]}/> @@ -73,7 +82,7 @@ class DeployPerm extends React.Component { dataSource={this.state.envs} targetKeys={store.deployRel.envs} onChange={keys => store.deployRel.envs = keys} - render={item => `${item.name}(${item._key})`}/> + render={item => `${item.name} - ${item._key}`}/> @@ -84,7 +93,7 @@ class DeployPerm extends React.Component { dataSource={this.state.apps} targetKeys={store.deployRel.apps} onChange={keys => store.deployRel.apps = keys} - render={item => `${item.name}(${item._key})`}/> + render={item => `${item.name} - ${item._key}`}/> diff --git a/spug_web/src/pages/system/role/PagePerm.js b/spug_web/src/pages/system/role/PagePerm.js index 1e51fb1..1c4ba06 100644 --- a/spug_web/src/pages/system/role/PagePerm.js +++ b/spug_web/src/pages/system/role/PagePerm.js @@ -17,16 +17,13 @@ class PagePerm extends React.Component { } handleSubmit = () => { - console.log(JSON.stringify(store.permissions)); - // this.setState({loading: true}); - // const formData = this.props.form.getFieldsValue(); - // formData['id'] = store.record.id; - // http.post('/api/account/role/', formData) - // .then(res => { - // message.success('操作成功'); - // store.formVisible = false; - // store.fetchRecords() - // }, () => this.setState({loading: false})) + this.setState({loading: true}); + http.patch('/api/account/role/', {id: store.record.id, page_perms: store.permissions}) + .then(res => { + message.success('操作成功'); + store.pagePermVisible = false; + store.fetchRecords() + }, () => this.setState({loading: false})) }; handleAllCheck = (e, mod, page) => { diff --git a/spug_web/src/pages/system/role/store.js b/spug_web/src/pages/system/role/store.js index 50e305d..523d474 100644 --- a/spug_web/src/pages/system/role/store.js +++ b/spug_web/src/pages/system/role/store.js @@ -5,14 +5,15 @@ import lds from 'lodash'; class Store { allPerms = {}; + initPerms = {}; @observable records = []; @observable record = {}; @observable permissions = lds.cloneDeep(codes); - @observable deployRel = {} + @observable deployRel = {}; @observable isFetching = false; @observable formVisible = false; @observable pagePermVisible = false; - @observable deployPermVisible = true; + @observable deployPermVisible = false; @observable f_name; @@ -28,15 +29,13 @@ class Store { }; initPermissions = () => { - const tmp = {}; for (let mod of codes) { - tmp[mod.key] = {}; + this.initPerms[mod.key] = {}; for (let page of mod.pages) { - tmp[mod.key][page.key] = []; + this.initPerms[mod.key][page.key] = []; this.allPerms[`${mod.key}.${page.key}`] = page.perms.map(x => x.key) } } - this.permissions = tmp; }; showForm = (info = {}) => { @@ -47,11 +46,13 @@ class Store { showPagePerm = (info) => { this.record = info; this.pagePermVisible = true; + this.permissions = lds.merge(this.initPerms, info.page_perms) }; showDeployPerm = (info) => { this.record = info; this.deployPermVisible = true; + this.deployRel = info.deploy_perms || {} } }