mirror of https://github.com/openspug/spug
U web update
parent
e845691eda
commit
e90883c899
|
@ -25,7 +25,8 @@ class LoginIndex extends React.Component {
|
||||||
title: '安全警告',
|
title: '安全警告',
|
||||||
className: styles.tips,
|
className: styles.tips,
|
||||||
content: <div>
|
content: <div>
|
||||||
未能获取到客户端的真实IP,无法提供基于请求来源IP的合法性验证,详细信息请参考<a target="_blank" href="https://spug.dev">官方文档</a>。
|
未能获取到客户端的真实IP,无法提供基于请求来源IP的合法性验证,详细信息请参考
|
||||||
|
<a target="_blank" href="https://spug.dev" rel="noopener noreferrer">官方文档</a>。
|
||||||
</div>,
|
</div>,
|
||||||
onOk: () => this.doLogin(data)
|
onOk: () => this.doLogin(data)
|
||||||
})
|
})
|
||||||
|
|
|
@ -5,6 +5,7 @@ import http from 'libs/http';
|
||||||
import envStore from 'pages/config/environment/store';
|
import envStore from 'pages/config/environment/store';
|
||||||
import appStore from 'pages/config/app/store';
|
import appStore from 'pages/config/app/store';
|
||||||
import store from './store';
|
import store from './store';
|
||||||
|
import lds from 'lodash';
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DeployPerm extends React.Component {
|
class DeployPerm extends React.Component {
|
||||||
|
@ -43,11 +44,13 @@ class DeployPerm extends React.Component {
|
||||||
|
|
||||||
handleSubmit = () => {
|
handleSubmit = () => {
|
||||||
this.setState({loading: true});
|
this.setState({loading: true});
|
||||||
const {app, service} = store.confRel;
|
if (lds.get(store.deployRel, 'envs', []).length === 0) {
|
||||||
http.patch('/api/app/', {id: store.record.id, rel_apps: app, rel_services: service})
|
message.error('请至少设置一个环境权限')
|
||||||
|
}
|
||||||
|
http.patch('/api/account/role/', {id: store.record.id, deploy_perms: store.deployRel})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
message.success('操作成功');
|
message.success('操作成功');
|
||||||
store.relVisible = false;
|
store.deployPermVisible = false;
|
||||||
store.fetchRecords()
|
store.fetchRecords()
|
||||||
}, () => this.setState({loading: false}))
|
}, () => this.setState({loading: false}))
|
||||||
};
|
};
|
||||||
|
@ -62,8 +65,14 @@ class DeployPerm extends React.Component {
|
||||||
onCancel={() => store.deployPermVisible = false}
|
onCancel={() => store.deployPermVisible = false}
|
||||||
confirmLoading={this.state.loading}
|
confirmLoading={this.state.loading}
|
||||||
onOk={this.handleSubmit}>
|
onOk={this.handleSubmit}>
|
||||||
<Alert closable style={{width: 600, margin: '0 auto 20px', color: '#31708f !important'}} type="info"
|
<Alert
|
||||||
message="小提示: 发布权限仅影响可发布的对象,页面公共权限请在功能权限中设置。"/>
|
closable
|
||||||
|
showIcon
|
||||||
|
type="info"
|
||||||
|
style={{width: 600, margin: '0 auto 20px', color: '#31708f !important'}}
|
||||||
|
message="小提示"
|
||||||
|
description={[<div key="1">发布权限仅影响发布功能的发布对象,页面功能权限请在功能权限中设置。</div>,
|
||||||
|
<div key="2">如果需要发布权限,请至少设置一个有权限操作的环境,否则无法正常发布。</div>]}/>
|
||||||
<Tabs tabPosition="left">
|
<Tabs tabPosition="left">
|
||||||
<Tabs.TabPane tab="环境权限" key="env">
|
<Tabs.TabPane tab="环境权限" key="env">
|
||||||
<Form.Item label="设置可发布至哪个环境">
|
<Form.Item label="设置可发布至哪个环境">
|
||||||
|
@ -73,7 +82,7 @@ class DeployPerm extends React.Component {
|
||||||
dataSource={this.state.envs}
|
dataSource={this.state.envs}
|
||||||
targetKeys={store.deployRel.envs}
|
targetKeys={store.deployRel.envs}
|
||||||
onChange={keys => store.deployRel.envs = keys}
|
onChange={keys => store.deployRel.envs = keys}
|
||||||
render={item => `${item.name}(${item._key})`}/>
|
render={item => `${item.name} - ${item._key}`}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Tabs.TabPane>
|
</Tabs.TabPane>
|
||||||
<Tabs.TabPane tab="应用权限" key="app">
|
<Tabs.TabPane tab="应用权限" key="app">
|
||||||
|
@ -84,7 +93,7 @@ class DeployPerm extends React.Component {
|
||||||
dataSource={this.state.apps}
|
dataSource={this.state.apps}
|
||||||
targetKeys={store.deployRel.apps}
|
targetKeys={store.deployRel.apps}
|
||||||
onChange={keys => store.deployRel.apps = keys}
|
onChange={keys => store.deployRel.apps = keys}
|
||||||
render={item => `${item.name}(${item._key})`}/>
|
render={item => `${item.name} - ${item._key}`}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Tabs.TabPane>
|
</Tabs.TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
|
@ -17,16 +17,13 @@ class PagePerm extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSubmit = () => {
|
handleSubmit = () => {
|
||||||
console.log(JSON.stringify(store.permissions));
|
this.setState({loading: true});
|
||||||
// this.setState({loading: true});
|
http.patch('/api/account/role/', {id: store.record.id, page_perms: store.permissions})
|
||||||
// const formData = this.props.form.getFieldsValue();
|
.then(res => {
|
||||||
// formData['id'] = store.record.id;
|
message.success('操作成功');
|
||||||
// http.post('/api/account/role/', formData)
|
store.pagePermVisible = false;
|
||||||
// .then(res => {
|
store.fetchRecords()
|
||||||
// message.success('操作成功');
|
}, () => this.setState({loading: false}))
|
||||||
// store.formVisible = false;
|
|
||||||
// store.fetchRecords()
|
|
||||||
// }, () => this.setState({loading: false}))
|
|
||||||
};
|
};
|
||||||
|
|
||||||
handleAllCheck = (e, mod, page) => {
|
handleAllCheck = (e, mod, page) => {
|
||||||
|
|
|
@ -5,14 +5,15 @@ import lds from 'lodash';
|
||||||
|
|
||||||
class Store {
|
class Store {
|
||||||
allPerms = {};
|
allPerms = {};
|
||||||
|
initPerms = {};
|
||||||
@observable records = [];
|
@observable records = [];
|
||||||
@observable record = {};
|
@observable record = {};
|
||||||
@observable permissions = lds.cloneDeep(codes);
|
@observable permissions = lds.cloneDeep(codes);
|
||||||
@observable deployRel = {}
|
@observable deployRel = {};
|
||||||
@observable isFetching = false;
|
@observable isFetching = false;
|
||||||
@observable formVisible = false;
|
@observable formVisible = false;
|
||||||
@observable pagePermVisible = false;
|
@observable pagePermVisible = false;
|
||||||
@observable deployPermVisible = true;
|
@observable deployPermVisible = false;
|
||||||
|
|
||||||
@observable f_name;
|
@observable f_name;
|
||||||
|
|
||||||
|
@ -28,15 +29,13 @@ class Store {
|
||||||
};
|
};
|
||||||
|
|
||||||
initPermissions = () => {
|
initPermissions = () => {
|
||||||
const tmp = {};
|
|
||||||
for (let mod of codes) {
|
for (let mod of codes) {
|
||||||
tmp[mod.key] = {};
|
this.initPerms[mod.key] = {};
|
||||||
for (let page of mod.pages) {
|
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.allPerms[`${mod.key}.${page.key}`] = page.perms.map(x => x.key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.permissions = tmp;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
showForm = (info = {}) => {
|
showForm = (info = {}) => {
|
||||||
|
@ -47,11 +46,13 @@ class Store {
|
||||||
showPagePerm = (info) => {
|
showPagePerm = (info) => {
|
||||||
this.record = info;
|
this.record = info;
|
||||||
this.pagePermVisible = true;
|
this.pagePermVisible = true;
|
||||||
|
this.permissions = lds.merge(this.initPerms, info.page_perms)
|
||||||
};
|
};
|
||||||
|
|
||||||
showDeployPerm = (info) => {
|
showDeployPerm = (info) => {
|
||||||
this.record = info;
|
this.record = info;
|
||||||
this.deployPermVisible = true;
|
this.deployPermVisible = true;
|
||||||
|
this.deployRel = info.deploy_perms || {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue