mirror of
https://github.com/jumpserver/lina.git
synced 2025-11-17 21:13:28 +00:00
Compare commits
54 Commits
pr@dev@k8s
...
v3.6.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77d961e779 | ||
|
|
135da3e8aa | ||
|
|
e3c4c406fe | ||
|
|
4cd126bb9f | ||
|
|
21c58e2954 | ||
|
|
25cc62b0c3 | ||
|
|
4adf765773 | ||
|
|
dbea97e445 | ||
|
|
8723081ba6 | ||
|
|
4d8b4c45af | ||
|
|
a6d642df60 | ||
|
|
2e74f1522f | ||
|
|
fe615e0314 | ||
|
|
09f734e6fc | ||
|
|
3117046342 | ||
|
|
b68aecb5cc | ||
|
|
1c9b155d97 | ||
|
|
75b1be9864 | ||
|
|
615c3c1cf4 | ||
|
|
4d82231af4 | ||
|
|
c6cf6571b6 | ||
|
|
8ea990d070 | ||
|
|
f4a32170d5 | ||
|
|
073508675e | ||
|
|
1d6ca0a93a | ||
|
|
36aea652d6 | ||
|
|
1a42ce90ab | ||
|
|
31a401b55d | ||
|
|
582a84178d | ||
|
|
9b9f7c936c | ||
|
|
2a6100957f | ||
|
|
16606d6a27 | ||
|
|
0a612f50e6 | ||
|
|
fe36fa9390 | ||
|
|
ba109900ec | ||
|
|
ec7768267f | ||
|
|
cc58b374ab | ||
|
|
04ffbb8fd6 | ||
|
|
49880f6739 | ||
|
|
e6f98d58c4 | ||
|
|
fd1f16d43c | ||
|
|
968b2415b1 | ||
|
|
776090d6ba | ||
|
|
3a37952288 | ||
|
|
62b8fc0e3b | ||
|
|
b2028869cb | ||
|
|
5277a725f8 | ||
|
|
f137788c1a | ||
|
|
f7d17c8de7 | ||
|
|
feea70b0be | ||
|
|
04696ef3d6 | ||
|
|
1731f4f788 | ||
|
|
6f25d93909 | ||
|
|
46461ec324 |
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div v-for="(command, index) in value" :key="index" :prop="'value.' + index + '.value'" class="command-item">
|
<div v-for="(command, index) in iValue" :key="index" :prop="'iValue.' + index + '.value'" class="command-item">
|
||||||
<el-input v-model="value[index]" size="mini">
|
<el-input v-model="iValue[index]" size="mini">
|
||||||
<template slot="prepend"> {{ inputTitle + ' ' + (index + 1) }}</template>
|
<template slot="prepend"> {{ inputTitle + ' ' + (index + 1) }}</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
<div class="input-button">
|
<div class="input-button">
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
@click="handleDelete(command)"
|
@click="handleDelete(command)"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="index === value.length - 1"
|
v-if="index === iValue.length - 1"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
size="mini"
|
size="mini"
|
||||||
style="flex-shrink: 0;"
|
style="flex-shrink: 0;"
|
||||||
@@ -27,6 +27,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
@@ -39,20 +40,32 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {}
|
return {
|
||||||
|
iValue: ['']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
iValue: {
|
||||||
|
handler(v) {
|
||||||
|
this.$emit('input', Array.from(v))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.iValue = Array.from(this.value)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleDelete(command) {
|
handleDelete(command) {
|
||||||
const index = this.value.indexOf(command)
|
const index = this.iValue.indexOf(command)
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
this.value.splice(index, 1)
|
this.iValue.splice(index, 1)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.value.push('')
|
this.iValue.push('')
|
||||||
},
|
},
|
||||||
deleteDisabled() {
|
deleteDisabled() {
|
||||||
return this.value.length <= 1
|
return this.iValue.length <= 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1648,6 +1648,7 @@
|
|||||||
"LDAPUser": "LDAP User",
|
"LDAPUser": "LDAP User",
|
||||||
"InsecureCommandAlert": "Insecure command alert",
|
"InsecureCommandAlert": "Insecure command alert",
|
||||||
"helpText": {
|
"helpText": {
|
||||||
|
"UserAttr": "If the user attribute contains `uid`, change it to `cas:user`",
|
||||||
"TempPassword": "For a while, there is a period of 300 seconds, failure immediately after use",
|
"TempPassword": "For a while, there is a period of 300 seconds, failure immediately after use",
|
||||||
"ApiKeyList": "The API key is used to sign the request header. The header of each request is different. Please refer to the usage documentation",
|
"ApiKeyList": "The API key is used to sign the request header. The header of each request is different. Please refer to the usage documentation",
|
||||||
"ConnectionTokenList": "The connection token is a kind of authentication information that combines authentication and connection assets. It allows users to log in to assets with one click. Currently supported components include: KoKo, Lion, Magnus, Razor, etc.",
|
"ConnectionTokenList": "The connection token is a kind of authentication information that combines authentication and connection assets. It allows users to log in to assets with one click. Currently supported components include: KoKo, Lion, Magnus, Razor, etc.",
|
||||||
|
|||||||
@@ -1654,6 +1654,7 @@
|
|||||||
"LDAPServerInfo": "LDAPサーバー",
|
"LDAPServerInfo": "LDAPサーバー",
|
||||||
"LDAPUser": "LDAPユーザー",
|
"LDAPUser": "LDAPユーザー",
|
||||||
"helpText": {
|
"helpText": {
|
||||||
|
"UserAttr": "ユーザ属性で `uid` を含むものは `cas:user` に変更する必要があります。",
|
||||||
"TempPassword": "一時パスワードの有効期間は300秒で、使用後すぐに失効します",
|
"TempPassword": "一時パスワードの有効期間は300秒で、使用後すぐに失効します",
|
||||||
"ApiKeyList": "Api keyを使用してリクエストヘッダに署名します。リクエストのヘッダごとに異なります。使用ドキュメントを参照してください",
|
"ApiKeyList": "Api keyを使用してリクエストヘッダに署名します。リクエストのヘッダごとに異なります。使用ドキュメントを参照してください",
|
||||||
"ConnectionTokenList": "接続トークンは、認証アセットと接続アセットを組み合わせた一種の認証情報であり、ユーザーはワンクリックでアセットにログインできます。現在サポートされているコンポーネントには、KoKo、Lion、Magnus、Razorなどがあります。",
|
"ConnectionTokenList": "接続トークンは、認証アセットと接続アセットを組み合わせた一種の認証情報であり、ユーザーはワンクリックでアセットにログインできます。現在サポートされているコンポーネントには、KoKo、Lion、Magnus、Razorなどがあります。",
|
||||||
|
|||||||
@@ -1652,6 +1652,7 @@
|
|||||||
"LDAPServerInfo": "LDAP 服务器",
|
"LDAPServerInfo": "LDAP 服务器",
|
||||||
"LDAPUser": "LDAP 用户",
|
"LDAPUser": "LDAP 用户",
|
||||||
"helpText": {
|
"helpText": {
|
||||||
|
"UserAttr": "用户属性中包含 `uid` 的需要更换为 `cas:user` ",
|
||||||
"TempPassword": "临时密码有效期为 300 秒,使用后立刻失效",
|
"TempPassword": "临时密码有效期为 300 秒,使用后立刻失效",
|
||||||
"ApiKeyList": "使用 Api key 签名请求头进行认证,每个请求的头部是不一样的, 相对于 Token 方式,更加安全,请查阅文档使用",
|
"ApiKeyList": "使用 Api key 签名请求头进行认证,每个请求的头部是不一样的, 相对于 Token 方式,更加安全,请查阅文档使用",
|
||||||
"ConnectionTokenList": "连接令牌是将身份验证和连接资产结合起来使用的一种认证信息,支持用户一键登录到资产,目前支持的组件包括:KoKo、Lion、Magnus、Razor 等",
|
"ConnectionTokenList": "连接令牌是将身份验证和连接资产结合起来使用的一种认证信息,支持用户一键登录到资产,目前支持的组件包括:KoKo、Lion、Magnus、Razor 等",
|
||||||
|
|||||||
@@ -64,6 +64,9 @@ const actions = {
|
|||||||
changeThemeColors(themeColors)
|
changeThemeColors(themeColors)
|
||||||
resolve(response)
|
resolve(response)
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
if (error.response && error.response.status === 400) {
|
||||||
|
alert('自 v3.6 版本开始,要求配置可信任域名或主机,否则无法正常使用, 查看: https://github.com/jumpserver/jumpserver/releases/tag/v3.6.0')
|
||||||
|
}
|
||||||
reject(error)
|
reject(error)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -58,6 +58,8 @@
|
|||||||
background: url('./icons/switch.png') no-repeat center left transparent;
|
background: url('./icons/switch.png') no-repeat center left transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.k8s_ico_open,
|
||||||
|
&.k8s_ico_close,
|
||||||
&.k8s_ico_docu {
|
&.k8s_ico_docu {
|
||||||
background: url('./icons/k8s.png') center left no-repeat;
|
background: url('./icons/k8s.png') center left no-repeat;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,7 +186,9 @@ export default {
|
|||||||
handleDelete(index) {
|
handleDelete(index) {
|
||||||
return () => {
|
return () => {
|
||||||
const item = this.tableConfig.totalData.splice(index, 1)
|
const item = this.tableConfig.totalData.splice(index, 1)
|
||||||
this.$axios.delete(`/api/v1/xpack/cloud/strategy-actions/${item[0]?.id}/`)
|
if (item[0]?.id) {
|
||||||
|
this.$axios.delete(`/api/v1/xpack/cloud/strategy-actions/${item[0].id}/`)
|
||||||
|
}
|
||||||
this.$message.success(this.$tc('common.deleteSuccessMsg'))
|
this.$message.success(this.$tc('common.deleteSuccessMsg'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,7 +98,9 @@ export default {
|
|||||||
handleDelete(index) {
|
handleDelete(index) {
|
||||||
return () => {
|
return () => {
|
||||||
const item = this.tableConfig.totalData.splice(index, 1)
|
const item = this.tableConfig.totalData.splice(index, 1)
|
||||||
this.$axios.delete(`/api/v1/xpack/cloud/strategy-rules/${item[0]?.id}/`)
|
if (item[0]?.id) {
|
||||||
|
this.$axios.delete(`/api/v1/xpack/cloud/strategy-rules/${item[0].id}/`)
|
||||||
|
}
|
||||||
this.$message.success(this.$tc('common.deleteSuccessMsg'))
|
this.$message.success(this.$tc('common.deleteSuccessMsg'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ export default {
|
|||||||
CAS_RENAME_ATTRIBUTES: {
|
CAS_RENAME_ATTRIBUTES: {
|
||||||
component: JsonEditor,
|
component: JsonEditor,
|
||||||
label: this.$t('setting.authUserAttrMap'),
|
label: this.$t('setting.authUserAttrMap'),
|
||||||
|
helpText: this.$t('setting.helpText.UserAttr'),
|
||||||
rules: [JsonRequiredUserNameMapped]
|
rules: [JsonRequiredUserNameMapped]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export default {
|
|||||||
{
|
{
|
||||||
title: this.$t('setting.AccountStorage'),
|
title: this.$t('setting.AccountStorage'),
|
||||||
name: 'Vault',
|
name: 'Vault',
|
||||||
hidden: !this.$hasPerm('settings.change_vault')
|
hidden: !this.$hasPerm('settings.change_vault') || !this.$store.getters.hasValidLicense
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user