2
0
itizawa 6 жил өмнө
parent
commit
872c5c29ec

+ 3 - 0
src/client/js/services/AdminLdapSecurityContainer.js

@@ -40,6 +40,7 @@ export default class AdminLdapSecurityContainer extends Container {
     const response = await this.appContainer.apiv3.get('/security-setting/');
     const { ldapAuth } = response.data.securityParams;
     this.setState({
+      serverUrl: ldapAuth.serverUrl || '',
       isUserBind: ldapAuth.isUserBind || false,
       ldapBindDN: ldapAuth.ldapBindDN || '',
       ldapBindDNPassword: ldapAuth.ldapBindDNPassword || '',
@@ -152,6 +153,7 @@ export default class AdminLdapSecurityContainer extends Container {
   async updateLdapSetting() {
 
     const response = await this.appContainer.apiv3.put('/security-setting/ldap', {
+      serverUrl: this.state.serverUrl,
       isUserBind: this.state.isUserBind,
       ldapBindDN: this.state.ldapBindDN,
       ldapBindDNPassword: this.state.ldapBindDNPassword,
@@ -168,6 +170,7 @@ export default class AdminLdapSecurityContainer extends Container {
     const { securitySettingParams } = response.data;
 
     this.setState({
+      serverUrl: securitySettingParams.serverUrl || '',
       isUserBind: securitySettingParams.isUserBind || false,
       ldapBindDN: securitySettingParams.ldapBindDN || '',
       ldapBindDNPassword: securitySettingParams.ldapBindDNPassword || '',

+ 6 - 0
src/server/routes/apiv3/security-setting.js

@@ -99,6 +99,9 @@ const validator = {
  *                description: enable hide by group
  *      LdapAuthSetting:
  *        type:object
+ *          serverUrl:
+ *            type: string
+ *            description: server url for ldap
  *          isUserBind:
  *            type: boolean
  *            description: enable user bind
@@ -277,6 +280,7 @@ module.exports = (crowi) => {
         isTwitterOAuthEnabled: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isEnabled'),
       },
       ldapAuth: {
+        serverUrl: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:serverUrl'),
         isUserBind: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:isUserBind'),
         ldapBindDN: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:bindDN'),
         ldapBindDNPassword: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:bindDNPassword'),
@@ -414,6 +418,7 @@ module.exports = (crowi) => {
   // validation
   router.put('/ldap', loginRequiredStrictly, adminRequired, csrf, ApiV3FormValidator, async(req, res) => {
     const requestParams = {
+      'security:passport-ldap:serverUrl': req.body.serverUrl,
       'security:passport-ldap:isUserBind': req.body.isUserBind,
       'security:passport-ldap:bindDN': req.body.ldapBindDN,
       'security:passport-ldap:bindDNPassword': req.body.ldapBindDNPassword,
@@ -430,6 +435,7 @@ module.exports = (crowi) => {
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
       const securitySettingParams = {
+        serverUrl: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:serverUrl'),
         isUserBind: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:isUserBind'),
         ldapBindDN: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:bindDN'),
         ldapBindDNPassword: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:bindDNPassword'),