Jelajahi Sumber

add update function

itizawa 6 tahun lalu
induk
melakukan
bd0816054b

+ 15 - 1
src/client/js/components/Admin/Security/SamlSecuritySetting.jsx

@@ -5,7 +5,7 @@ import { withTranslation } from 'react-i18next';
 import loggerFactory from '@alias/logger';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
-import { toastError } from '../../../util/apiNotification';
+import { toastSuccess, toastError } from '../../../util/apiNotification';
 
 import AppContainer from '../../../services/AppContainer';
 import AdminGeneralSecurityContainer from '../../../services/AdminGeneralSecurityContainer';
@@ -22,6 +22,7 @@ class SamlSecurityManagement extends React.Component {
       retrieveError: null,
     };
 
+    this.onClickSubmit = this.onClickSubmit.bind(this);
   }
 
   async componentDidMount() {
@@ -37,6 +38,19 @@ class SamlSecurityManagement extends React.Component {
     }
   }
 
+  async onClickSubmit() {
+    const { t, adminSamlSecurityContainer } = this.props;
+
+    try {
+      await adminSamlSecurityContainer.updateSamlSetting();
+      toastSuccess(t('security_setting.SAML.updated_saml'));
+    }
+    catch (err) {
+      toastError(err);
+      logger.error(err);
+    }
+  }
+
   render() {
     const { t, adminGeneralSecurityContainer, adminSamlSecurityContainer } = this.props;
     const { useOnlyEnvVars } = adminSamlSecurityContainer.state;

+ 51 - 0
src/client/js/services/AdminSamlSecurityContainer.js

@@ -151,4 +151,55 @@ export default class AdminSamlSecurityContainer extends Container {
     this.setState({ isSameEmailTreatedAsIdenticalUser: !this.state.isSameEmailTreatedAsIdenticalUser });
   }
 
+  /**
+   * Update saml option
+   */
+  async updateSamlSetting() {
+
+    const response = await this.appContainer.apiv3.put('/security-setting/saml', {
+      samlDbEntryPoint: this.state.samlDbEntryPoint,
+      samlEnvVarEntryPoint: this.state.samlEnvVarEntryPoint,
+      samlDbIssuer: this.state.samlDbIssuer,
+      samlEnvVarIssuer: this.state.samlEnvVarIssuer,
+      samlDbCert: this.state.samlDbCert,
+      samlEnvVarCert: this.state.samlEnvVarCert,
+      samlDbAttrMapId: this.state.samlDbAttrMapId,
+      samlEnvVarAttrMapId: this.state.samlEnvVarAttrMapId,
+      samlDbAttrMapUserName: this.state.samlDbAttrMapUserName,
+      samlEnvVarAttrMapUserName: this.state.samlEnvVarAttrMapUserName,
+      samlDbAttrMapMail: this.state.samlDbAttrMapMail,
+      samlEnvVarAttrMapMail: this.state.samlEnvVarAttrMapMail,
+      samlDbAttrMapFirstName: this.state.samlDbAttrMapFirstName,
+      samlEnvVarAttrMapFirstName: this.state.samlEnvVarAttrMapFirstName,
+      samlDbAttrMapLastName: this.state.samlDbAttrMapLastName,
+      samlEnvVarAttrMapLastName: this.state.samlEnvVarAttrMapLastName,
+      isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser || false,
+      isSameEmailTreatedAsIdenticalUser: this.state.isSameEmailTreatedAsIdenticalUser || false,
+    });
+
+    const { securitySettingParams } = response.data;
+
+    this.setState({
+      samlDbEntryPoint: securitySettingParams.samlDbEntryPoint || '',
+      samlEnvVarEntryPoint: securitySettingParams.samlEnvVarEntryPoint || '',
+      samlDbIssuer: securitySettingParams.samlDbIssuer || '',
+      samlEnvVarIssuer: securitySettingParams.samlEnvVarIssuer || '',
+      samlDbCert: securitySettingParams.samlDbCert || '',
+      samlEnvVarCert: securitySettingParams.samlEnvVarCert || '',
+      samlDbAttrMapId: securitySettingParams.samlDbAttrMapId || '',
+      samlEnvVarAttrMapId: securitySettingParams.samlEnvVarAttrMapId || '',
+      samlDbAttrMapUserName: securitySettingParams.samlDbAttrMapUserName || '',
+      samlEnvVarAttrMapUserName: securitySettingParams.samlEnvVarAttrMapUserName || '',
+      samlDbAttrMapMail: securitySettingParams.samlDbAttrMapMail || '',
+      samlEnvVarAttrMapMail: securitySettingParams.samlEnvVarAttrMapMail || '',
+      samlDbAttrMapFirstName: securitySettingParams.samlDbAttrMapFirstName || '',
+      samlEnvVarAttrMapFirstName: securitySettingParams.samlEnvVarAttrMapFirstName || '',
+      samlDbAttrMapLastName: securitySettingParams.samlDbAttrMapLastName || '',
+      samlEnvVarAttrMapLastName: securitySettingParams.samlEnvVarAttrMapLastName || '',
+      isSameUsernameTreatedAsIdenticalUser: securitySettingParams.isSameUsernameTreatedAsIdenticalUser || false,
+      isSameEmailTreatedAsIdenticalUser: securitySettingParams.isSameEmailTreatedAsIdenticalUser || false,
+    });
+    return response;
+  }
+
 }