|
|
@@ -1,6 +1,7 @@
|
|
|
<template>
|
|
|
<div class="proDog-setting">
|
|
|
<a-form
|
|
|
+ ref="formRef"
|
|
|
name="basic"
|
|
|
:label-col="{ style: { width: '186px' } }"
|
|
|
:wrapper-col="{ span: 8 }"
|
|
|
@@ -104,26 +105,7 @@
|
|
|
</a-form>
|
|
|
<div style="margin: 22px 0 -22px 0">
|
|
|
<a-button @click="prev"> 上一步 </a-button>
|
|
|
- <a-button
|
|
|
- type="primary"
|
|
|
- :disabled="
|
|
|
- !identitySetting.spEntityID ||
|
|
|
- !identitySetting.uid ||
|
|
|
- !identitySetting.userName ||
|
|
|
- !identitySetting.userNo ||
|
|
|
- !identitySetting.clientId ||
|
|
|
- !identitySetting.roleTemplateNo ||
|
|
|
- !identitySetting.spEntityID ||
|
|
|
- !identitySetting.spAssertionConsumeService ||
|
|
|
- !identitySetting.spAssertionConsumeSuccessRedirectService ||
|
|
|
- service ||
|
|
|
- redirect
|
|
|
- ? true
|
|
|
- : false
|
|
|
- "
|
|
|
- style="margin-left: 8px"
|
|
|
- @click="createIdentity"
|
|
|
- >
|
|
|
+ <a-button type="primary" style="margin-left: 8px" @click="createIdentity">
|
|
|
完成
|
|
|
</a-button>
|
|
|
</div>
|
|
|
@@ -150,9 +132,7 @@ const props = defineProps({
|
|
|
default: () => ({}),
|
|
|
},
|
|
|
});
|
|
|
-
|
|
|
-const service = ref(false);
|
|
|
-const redirect = ref(false);
|
|
|
+const formRef = ref();
|
|
|
const prevDatas = ref({});
|
|
|
const identitySetting = ref({});
|
|
|
|
|
|
@@ -163,33 +143,35 @@ onMounted(() => {
|
|
|
|
|
|
// 新建或更新认证源
|
|
|
const createIdentity = () => {
|
|
|
- const jsonStr = JSON.stringify(identitySetting.value);
|
|
|
- const formData = new FormData();
|
|
|
- formData.append('attribute', jsonStr);
|
|
|
- formData.append('id', prevDatas.value.id);
|
|
|
- formData.append('name', prevDatas.value.name);
|
|
|
- formData.append('no', prevDatas.value.no);
|
|
|
- formData.append('logo', prevDatas.value.file);
|
|
|
- formData.append('active', prevDatas.value.active);
|
|
|
- formData.append('authType', prevDatas.value.authType);
|
|
|
- formData.append('description', prevDatas.value.description);
|
|
|
- saveUpdateAuth(formData).then(
|
|
|
- success => {
|
|
|
- if (success.errorCode === 0) {
|
|
|
- if (!prevDatas.value.id) {
|
|
|
- message.success('新建认证源成功!');
|
|
|
+ formRef.value.validate().then(success => {
|
|
|
+ const jsonStr = JSON.stringify(identitySetting.value);
|
|
|
+ const formData = new FormData();
|
|
|
+ formData.append('attribute', jsonStr);
|
|
|
+ formData.append('id', prevDatas.value.id);
|
|
|
+ formData.append('name', prevDatas.value.name);
|
|
|
+ formData.append('no', prevDatas.value.no);
|
|
|
+ formData.append('logo', prevDatas.value.file);
|
|
|
+ formData.append('active', prevDatas.value.active);
|
|
|
+ formData.append('authType', prevDatas.value.authType);
|
|
|
+ formData.append('description', prevDatas.value.description);
|
|
|
+ saveUpdateAuth(formData).then(
|
|
|
+ success => {
|
|
|
+ if (success.errorCode === 0) {
|
|
|
+ if (!prevDatas.value.id) {
|
|
|
+ message.success('新建认证源成功!');
|
|
|
+ } else {
|
|
|
+ message.success('更新认证源成功!');
|
|
|
+ }
|
|
|
+ router.push('/desktop/identityManager');
|
|
|
} else {
|
|
|
- message.success('更新认证源成功!');
|
|
|
+ message.error(success.errorMessage);
|
|
|
}
|
|
|
- router.push('/desktop/identityManager');
|
|
|
- } else {
|
|
|
- message.error(success.errorMessage);
|
|
|
- }
|
|
|
- },
|
|
|
- error => {
|
|
|
- Common.processException(error);
|
|
|
- },
|
|
|
- );
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ Common.processException(error);
|
|
|
+ },
|
|
|
+ );
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
const prev = () => {
|
|
|
@@ -207,10 +189,7 @@ let validateService = async (_rule, value) => {
|
|
|
}
|
|
|
let no = prevDatas.value.no;
|
|
|
if (!value.endsWith('/api/saml/sso/' + no)) {
|
|
|
- service.value = true;
|
|
|
- return Promise.reject('断言解析地址必须以/api/saml/sso/' + no + '结束');
|
|
|
- } else {
|
|
|
- service.value = false;
|
|
|
+ return Promise.reject('断言解析地址必须以/api/saml/sso/' + no + '结束,' + no + '为认证源标识');
|
|
|
}
|
|
|
};
|
|
|
// 验证断言解析成功跳转地址结束字符是否正确
|
|
|
@@ -219,12 +198,9 @@ let redirectService = async (_rule, value) => {
|
|
|
return Promise.reject('请输入 Prodog 断言解析成功跳转地址');
|
|
|
}
|
|
|
if (!value.endsWith('index.html#/samlLogin')) {
|
|
|
- redirect.value = true;
|
|
|
return Promise.reject(
|
|
|
'断言解析成功跳转地址必须以index.html#/samlLogin结束',
|
|
|
);
|
|
|
- } else {
|
|
|
- redirect.value = false;
|
|
|
}
|
|
|
};
|
|
|
const rules = {
|