mirror of
https://github.com/jumpserver/lina.git
synced 2025-09-25 14:25:23 +00:00
perf: 支持slack通知和认证 (#3556)
This commit is contained in:
@@ -1797,6 +1797,7 @@
|
||||
"weComTest": "Test",
|
||||
"FeiShu": "FeiShu",
|
||||
"feiShuTest": "Test",
|
||||
"Slack": "Slack",
|
||||
"setting": "Setting",
|
||||
"OtherAuth": "Other Auth",
|
||||
"OAuth2LogoTip": "Tip: Authentication service provider (recommended image size: 64px*64px)",
|
||||
@@ -1954,6 +1955,7 @@
|
||||
"setWeCom": "Set wecom login",
|
||||
"setDingTalk": "Set dingtalk login",
|
||||
"setFeiShu": "Set feishu login",
|
||||
"setSlack": "Set Slack login",
|
||||
"DatePasswordUpdated": "Date password updated",
|
||||
"DescribeOfGuide": "Welcome to JumpServer. Click here for more information",
|
||||
"Email": "Email",
|
||||
@@ -1961,6 +1963,7 @@
|
||||
"WeCom": "WeCom",
|
||||
"DingTalk": "DingTalk",
|
||||
"FeiShu": "FeiShu",
|
||||
"Slack": "Slack",
|
||||
"FingerPrint": "Fingerprint",
|
||||
"FirstLogin": "First login",
|
||||
"InviteUser": "Invite user",
|
||||
|
@@ -1800,6 +1800,7 @@
|
||||
"dingTalkTest": "テスト",
|
||||
"weComTest": "テスト",
|
||||
"FeiShu": "本を飛ばす",
|
||||
"Slack": "Slack",
|
||||
"SMS": "SMS設定",
|
||||
"feiShuTest": "テスト",
|
||||
"setting": "設定",
|
||||
@@ -1946,6 +1947,7 @@
|
||||
"WeCom": "企業wechat",
|
||||
"DingTalk": "ホッチキス",
|
||||
"FeiShu": "本を飛ばす",
|
||||
"Slack": "Slack",
|
||||
"FingerPrint": "指紋",
|
||||
"FirstLogin": "初回ログイン",
|
||||
"OrgUser": "組織ユーザー",
|
||||
@@ -1958,6 +1960,7 @@
|
||||
"setWeCom": "企業のwechat認証を設定する",
|
||||
"setDingTalk": "ホッチキス認証の設定",
|
||||
"setFeiShu": "飛書認証を設定する",
|
||||
"setSlack": "Slack認証を設定します",
|
||||
"HelpText": {
|
||||
"MFAOfUserFirstLoginPersonalInformationImprovementPage": "アカウントをより安全にするために、マルチファクタ认证を有効にします。 <Br/> 有効にすると、次回のログイン時に多因子認証バインディングプロセスに入ります。また、 (個人情報-> クイック修正-> 多因子設定の変更) もできます。で直接紐付けます",
|
||||
"MFAOfUserFirstLoginUserGuidePage": "あなたと会社の安全を守るために、あなたのアカウント、パスワード、鍵などの重要な機密情報を大切に保管してください (例: 複雑なパスワードを設定し、多因子認証を有効にする) <br> メールボックス、携帯電話番号、微信などの個人情報は、ユーザー認証やプラットフォーム内部のメッセージ通知としてのみ使用されています。",
|
||||
|
@@ -1778,6 +1778,7 @@
|
||||
"dingTalkTest": "测试",
|
||||
"weComTest": "测试",
|
||||
"FeiShu": "飞书",
|
||||
"Slack": "Slack",
|
||||
"SMS": "短信设置",
|
||||
"feiShuTest": "测试",
|
||||
"setting": "设置",
|
||||
@@ -1929,6 +1930,7 @@
|
||||
"WeCom": "企业微信",
|
||||
"DingTalk": "钉钉",
|
||||
"FeiShu": "飞书",
|
||||
"Slack": "Slack",
|
||||
"FingerPrint": "指纹",
|
||||
"FirstLogin": "首次登录",
|
||||
"OrgUser": "组织用户",
|
||||
@@ -1941,6 +1943,7 @@
|
||||
"setWeCom": "设置企业微信认证",
|
||||
"setDingTalk": "设置钉钉认证",
|
||||
"setFeiShu": "设置飞书认证",
|
||||
"setSlack": "设置Slack认证",
|
||||
"HelpText": {
|
||||
"MFAOfUserFirstLoginPersonalInformationImprovementPage": "启用多因子认证,使账号更加安全。<br/> 启用之后您将会在下次登录时进入多因子认证绑定流程;您也可以在(个人信息->快速修改->更改多因子设置)中直接绑定!",
|
||||
"MFAOfUserFirstLoginUserGuidePage": "为了保护您和公司的安全,请妥善保管您的账户、密码和密钥等重要敏感信息;(如:设置复杂密码,并启用多因子认证)<br/> 邮箱、手机号、微信等个人信息,仅作为用户认证和平台内部消息通知使用。",
|
||||
|
@@ -101,6 +101,23 @@ export default {
|
||||
}.bind(this)
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('users.setSlack'),
|
||||
attrs: {
|
||||
type: 'primary',
|
||||
label: this.getLabel('slack'),
|
||||
disabled: this.isDisabled('slack'),
|
||||
showTip: this.isDisabled('slack'),
|
||||
tip: this.$t('users.UnbindHelpText')
|
||||
},
|
||||
has: this.$store.getters.publicSettings.AUTH_SLACK,
|
||||
callbacks: {
|
||||
click: function() {
|
||||
this.currentEdit = 'slack'
|
||||
this.verifyDone()
|
||||
}.bind(this)
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('users.SetMFA'),
|
||||
attrs: {
|
||||
@@ -212,6 +229,18 @@ export default {
|
||||
callbacks: {
|
||||
change: this.updateUserReceiveBackends
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('setting.Slack'),
|
||||
type: 'switch',
|
||||
attrs: {
|
||||
name: 'slack',
|
||||
model: this.object?.receive_backends.indexOf('slack') !== -1
|
||||
},
|
||||
has: this.$store.getters.publicSettings.AUTH_SLACK,
|
||||
callbacks: {
|
||||
change: this.updateUserReceiveBackends
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ import BaseAuth from './Base'
|
||||
import { UpdateToken } from '@/components/Form/FormFields'
|
||||
|
||||
export default {
|
||||
name: 'Wecom',
|
||||
name: 'Feishu',
|
||||
components: {
|
||||
BaseAuth
|
||||
},
|
||||
|
82
src/views/settings/Auth/Slack.vue
Normal file
82
src/views/settings/Auth/Slack.vue
Normal file
@@ -0,0 +1,82 @@
|
||||
<template>
|
||||
<BaseAuth
|
||||
:config="settings"
|
||||
:title="$tc('setting.Slack')"
|
||||
enable-field="AUTH_SLACK"
|
||||
v-on="$listeners"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BaseAuth from './Base'
|
||||
import { UpdateToken } from '@/components/Form/FormFields'
|
||||
|
||||
export default {
|
||||
name: 'Slack',
|
||||
components: {
|
||||
BaseAuth
|
||||
},
|
||||
data() {
|
||||
const vm = this
|
||||
return {
|
||||
settings: {
|
||||
url: '/api/v1/settings/setting/?category=slack',
|
||||
hasDetailInMsg: false,
|
||||
moreButtons: [
|
||||
{
|
||||
title: this.$t('common.Test'),
|
||||
loading: false,
|
||||
callback: function(value, form, btn) {
|
||||
btn.loading = true
|
||||
vm.$axios.post(
|
||||
'/api/v1/settings/slack/testing/',
|
||||
value
|
||||
).then(res => {
|
||||
vm.$message.success(res['msg'])
|
||||
}).catch(() => {
|
||||
vm.$log.error('err occur')
|
||||
}).finally(() => { btn.loading = false })
|
||||
}
|
||||
}
|
||||
],
|
||||
encryptedFields: ['SLACK_SECRET'],
|
||||
fields: [
|
||||
[
|
||||
this.$t('common.BasicInfo'),
|
||||
[
|
||||
'AUTH_SLACK', 'SLACK_CLIENT_ID', 'SLACK_CLIENT_SECRET', 'SLACK_BOT_TOKEN'
|
||||
]
|
||||
]
|
||||
],
|
||||
fieldsMeta: {
|
||||
SLACK_APP_SECRET: {
|
||||
component: UpdateToken
|
||||
},
|
||||
SLACK_BOT_TOKEN: {
|
||||
component: UpdateToken
|
||||
}
|
||||
},
|
||||
// 不清理的话,编辑secret,在删除提交会报错
|
||||
cleanFormValue(data) {
|
||||
const needDeleteValues = ['SLACK_CLIENT_SECRET', 'SLACK_BOT_TOKEN']
|
||||
needDeleteValues.map((k) => {
|
||||
if (!data[k]) {
|
||||
delete data[k]
|
||||
}
|
||||
})
|
||||
console.log('data: ', data)
|
||||
return data
|
||||
},
|
||||
submitMethod() {
|
||||
return 'put'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@@ -21,6 +21,7 @@ import SSO from './SSO'
|
||||
import SAML2 from './SAML2'
|
||||
import OAuth2 from './OAuth2'
|
||||
import Passkey from './Passkey.vue'
|
||||
import Slack from './Slack.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@@ -37,7 +38,8 @@ export default {
|
||||
SSO,
|
||||
SAML2,
|
||||
OAuth2,
|
||||
Passkey
|
||||
Passkey,
|
||||
Slack
|
||||
},
|
||||
data() {
|
||||
let extraBackends = []
|
||||
@@ -73,6 +75,11 @@ export default {
|
||||
name: 'FeiShu',
|
||||
key: 'AUTH_FEISHU'
|
||||
},
|
||||
{
|
||||
title: this.$t('setting.Slack'),
|
||||
name: 'Slack',
|
||||
key: 'AUTH_SLACK'
|
||||
},
|
||||
{
|
||||
title: this.$t('setting.Radius'),
|
||||
name: 'Radius',
|
||||
|
Reference in New Issue
Block a user