279 lines
10 KiB
Diff
279 lines
10 KiB
Diff
From ac81979579c4936cb5dd842dd7ea59a88977bbdd Mon Sep 17 00:00:00 2001
|
|
From: wkl505997900 <2313665567@qq.com>
|
|
Date: Thu, 26 Oct 2023 17:30:04 +0800
|
|
Subject: [PATCH] add password and ssh_pkey judge logic
|
|
|
|
---
|
|
src/views/assests/components/EditableCell.vue | 34 +++++++++++++------
|
|
src/views/assests/components/addMoreHost.vue | 10 +++++-
|
|
vue.config.js | 32 ++++++-----------
|
|
3 files changed, 43 insertions(+), 33 deletions(-)
|
|
|
|
diff --git a/src/views/assests/components/EditableCell.vue b/src/views/assests/components/EditableCell.vue
|
|
index 28f0f62..5f4b347 100644
|
|
--- a/src/views/assests/components/EditableCell.vue
|
|
+++ b/src/views/assests/components/EditableCell.vue
|
|
@@ -21,7 +21,7 @@
|
|
<div v-else class="editable-cell-text-wrapper">
|
|
<div class="editable-content">
|
|
<!-- <a-input :type="formkey === 'password' ? 'password' : 'text'" v-model="value" /> -->
|
|
- <span v-if="formkey === 'password' || formkey === 'ssh_pkey'">{{ countStar(form[formkey]) }}</span>
|
|
+ <span v-if="formkey === 'password' || formkey === 'ssh_pkey'">{{ countStar() }}</span>
|
|
<span v-else>{{ value || ' ' }}</span>
|
|
</div>
|
|
<a-icon type="edit" class="editable-cell-icon" @click="edit" />
|
|
@@ -40,9 +40,27 @@ export default {
|
|
formkey: {
|
|
default: '',
|
|
type: String
|
|
+ },
|
|
+ record: {
|
|
+ default: null,
|
|
+ type: Object
|
|
}
|
|
},
|
|
data() {
|
|
+ const validatePassword = (rule, value, callback) => {
|
|
+ if (!this.record.ssh_pkey && (value.length === 0 || value.split(' ').join('').length === 0)) {
|
|
+ callback(new Error('password和ssh_pkey不能都为空!'));
|
|
+ } else {
|
|
+ callback();
|
|
+ }
|
|
+ };
|
|
+ const validateSshpkey = (rule, value, callback) => {
|
|
+ if (!this.record.password && (value.length === 0 || value.split(' ').join('').length === 0)) {
|
|
+ callback(new Error('password和ssh_pkey不能都为空!'));
|
|
+ } else {
|
|
+ callback();
|
|
+ }
|
|
+ };
|
|
const validateUser = (rule, value, callback) => {
|
|
if (value.length === 0 || value.split(' ').join('').length === 0) {
|
|
callback(new Error('ssh_user不能为空!'));
|
|
@@ -90,14 +108,14 @@ export default {
|
|
cb();
|
|
};
|
|
return {
|
|
- value: this.text,
|
|
+ value: this.text === 'undefined' ? '' : this.text,
|
|
editable: false,
|
|
rules: {
|
|
host_ip: [{ required: true, pattern: /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/, message: '请输入IP地址在 0.0.0.0~255.255.255.255 区间内', trigger: 'change' }],
|
|
ssh_port: [{required: true, message: '请输入端口'}, {validator: checkSSHPort}],
|
|
ssh_user: [{ validator: validateUser, trigger: 'change' }],
|
|
- password: [{ required: true, message: 'password不能为空', trigger: 'change' }],
|
|
- ssh_pkey: [{ required: true, message: 'ssh_pkey不能为空', trigger: 'change' }],
|
|
+ password: [{ validator: validatePassword, trigger: 'change' }],
|
|
+ ssh_pkey: [{ validator: validateSshpkey, trigger: 'change' }],
|
|
host_name: [{ validator: checkNameInput, trigger: 'change' }],
|
|
host_group_name: [{ required: true, message: 'host_group_name不能为空', trigger: 'change' }],
|
|
management: [{ validator: checkmanagement, trigger: 'change' }]
|
|
@@ -106,11 +124,7 @@ export default {
|
|
},
|
|
methods: {
|
|
countStar(num) {
|
|
- let str = ''
|
|
- for (let i = 0; i < num.length; i++) {
|
|
- str += '*'
|
|
- }
|
|
- return str
|
|
+ return '**********'
|
|
},
|
|
handleChange(e) {
|
|
const value = e.target.value;
|
|
@@ -152,7 +166,7 @@ export default {
|
|
created() {
|
|
},
|
|
beforeDestroy() {
|
|
- document.removeEventListener('mouseup', this.handleClickOutside)
|
|
+ document.removeEventListener('mouseup', this.handleClickOutside);
|
|
},
|
|
mounted() {
|
|
document.addEventListener('mouseup', this.handleClickOutside)
|
|
diff --git a/src/views/assests/components/addMoreHost.vue b/src/views/assests/components/addMoreHost.vue
|
|
index 818ffa6..efc930b 100644
|
|
--- a/src/views/assests/components/addMoreHost.vue
|
|
+++ b/src/views/assests/components/addMoreHost.vue
|
|
@@ -31,6 +31,7 @@
|
|
<editable-cell
|
|
ref="host_ip"
|
|
formkey="host_ip"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -40,6 +41,7 @@
|
|
<editable-cell
|
|
ref="ssh_port"
|
|
formkey="ssh_port"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -49,6 +51,7 @@
|
|
<editable-cell
|
|
ref="ssh_user"
|
|
formkey="ssh_user"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -58,6 +61,7 @@
|
|
<editable-cell
|
|
ref="password"
|
|
formkey="password"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -67,6 +71,7 @@
|
|
<editable-cell
|
|
ref="ssh_pkey"
|
|
formkey="ssh_pkey"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -76,6 +81,7 @@
|
|
<editable-cell
|
|
ref="host_name"
|
|
formkey="host_name"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -85,6 +91,7 @@
|
|
<editable-cell
|
|
ref="host_group_name"
|
|
formkey="host_group_name"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -94,6 +101,7 @@
|
|
<editable-cell
|
|
ref="management"
|
|
formkey="management"
|
|
+ :record="record"
|
|
:text="String(text)"
|
|
@unSubmit="unSubmit()"
|
|
@allowSub="allowSub()"
|
|
@@ -350,7 +358,7 @@ export default {
|
|
const result = XLSX.utils.sheet_to_json(worksheet); // 将数据json数据格式
|
|
result.forEach((item) => {
|
|
const arr = Object.keys(item)
|
|
- if (!arr.includes('host_ip') || !arr.includes('ssh_port') || !arr.includes('ssh_user') || !arr.includes('password') || !arr.includes('ssh_pkey') || !arr.includes('host_name') || !arr.includes('host_group_name') || !arr.includes('management')) {
|
|
+ if (!arr.includes('host_ip') || !arr.includes('ssh_port') || !arr.includes('ssh_user') || (!arr.includes('password') && !arr.includes('ssh_pkey')) || !arr.includes('host_name') || !arr.includes('host_group_name') || !arr.includes('management')) {
|
|
this.removeFile(file);
|
|
this.dataAllow = false;
|
|
}
|
|
diff --git a/vue.config.js b/vue.config.js
|
|
index a93ea29..8740425 100644
|
|
--- a/vue.config.js
|
|
+++ b/vue.config.js
|
|
@@ -25,10 +25,7 @@ function getGitHash() {
|
|
}
|
|
|
|
const serverMap = {
|
|
- serverIpBase: 'http://127.0.0.1',
|
|
- serveiIp1: 'http://172.168.115.178',
|
|
- serveiIp2: 'http://172.168.97.229',
|
|
- serveiIp3: 'http://172.168.240.235'
|
|
+ serverIpBase: 'http://127.0.0.1'
|
|
}
|
|
|
|
// vue.config.js
|
|
@@ -101,8 +98,7 @@ const vueConfig = {
|
|
// If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
|
|
proxy: {
|
|
'/api/domain': {
|
|
- // target: serverMap.serverIpBase + ':11114',
|
|
- target: serverMap.serveiIp3 + ':11114',
|
|
+ target: serverMap.serverIpBase + ':11114',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -110,8 +106,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/host': {
|
|
- // target: serverMap.serverIpBase + ':11114',
|
|
- target: serverMap.serveiIp3 + ':11114',
|
|
+ target: serverMap.serverIpBase + ':11114',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -119,8 +114,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/confs': {
|
|
- // target: serverMap.serverIpBase + ':11114',
|
|
- target: serverMap.serveiIp3 + ':11114',
|
|
+ target: serverMap.serverIpBase + ':11114',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -128,8 +122,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/management': {
|
|
- // target: serverMap.serverIpBase + ':11114',
|
|
- target: serverMap.serveiIp3 + ':11114',
|
|
+ target: serverMap.serverIpBase + ':11114',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -137,8 +130,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/diag': {
|
|
- // target: serverMap.serverIpBase + ':11113',
|
|
- target: serverMap.serveiIp2 + ':11113',
|
|
+ target: serverMap.serverIpBase + ':11113',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -146,8 +138,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/check': {
|
|
- // target: serverMap.serverIpBase + ':11112',
|
|
- target: serverMap.serveiIp2 + ':11112',
|
|
+ target: serverMap.serverIpBase + ':11112',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -155,8 +146,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/vulnerability': {
|
|
- // target: serverMap.serverIpBase + ':11116',
|
|
- target: serverMap.serveiIp2 + ':11116',
|
|
+ target: serverMap.serverIpBase + ':11116',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -164,8 +154,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api/gala-spider': {
|
|
- // target: serverMap.serverIpBase + ':11115',
|
|
- target: serverMap.serveiIp2 + ':11115',
|
|
+ target: serverMap.serverIpBase + ':11115',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
@@ -173,8 +162,7 @@ const vueConfig = {
|
|
}
|
|
},
|
|
'/api': {
|
|
- // target: serverMap.serverIpBase + ':11111',
|
|
- target: serverMap.serveiIp2 + ':11111',
|
|
+ target: serverMap.serverIpBase + ':11111',
|
|
ws: false,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
--
|
|
Gitee
|
|
|