itizawa 6 лет назад
Родитель
Сommit
70687effe5

+ 8 - 4
src/client/js/services/AdminTwitterSecurityContainer.js

@@ -76,11 +76,15 @@ export default class AdminTwitterSecurityContainer extends Container {
   async updateTwitterSetting() {
     const { twitterConsumerKey, twitterConsumerSecret, isSameUsernameTreatedAsIdenticalUser } = this.state;
 
-    const requestParams = {};
+    const requestParams = {
+      twitterConsumerKey,
+      twitterConsumerSecret,
+      isSameUsernameTreatedAsIdenticalUser,
+    };
 
-    if (twitterConsumerKey != null) { requestParams.twitterConsumerKey = twitterConsumerKey }
-    if (twitterConsumerSecret != null) { requestParams.twitterConsumerSecret = twitterConsumerSecret }
-    if (isSameUsernameTreatedAsIdenticalUser != null) { requestParams.isSameUsernameTreatedAsIdenticalUser = isSameUsernameTreatedAsIdenticalUser }
+    for (const [key, value] of Object.entries(requestParams)) {
+      if (value == null) { delete requestParams[key] }
+    }
 
     const response = await this.appContainer.apiv3.put('/security-setting/twitter-oauth', requestParams);
 

+ 8 - 5
src/server/routes/apiv3/security-setting.js

@@ -888,13 +888,16 @@ module.exports = (crowi) => {
    *                  $ref: '#/components/schemas/TwitterOAuthSetting'
    */
   router.put('/twitter-oauth', loginRequiredStrictly, adminRequired, csrf, validator.twitterOAuth, ApiV3FormValidator, async(req, res) => {
-    const { twitterConsumerKey, twitterConsumerSecret, isSameUsernameTreatedAsIdenticalUser } = req.body;
 
-    const requestParams = {};
+    const requestParams = {
+      'security:passport-twitter:consumerKey': req.body.twitterConsumerKey,
+      'security:passport-twitter:consumerSecret': req.body.twitterConsumerSecret,
+      'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser': req.body.isSameUsernameTreatedAsIdenticalUser,
+    };
 
-    if (twitterConsumerKey != null) { requestParams['security:passport-twitter:consumerKey'] = twitterConsumerKey }
-    if (twitterConsumerSecret != null) { requestParams['security:passport-twitter:consumerSecret'] = twitterConsumerSecret }
-    if (isSameUsernameTreatedAsIdenticalUser != null) { requestParams['security:passport-twitter:isSameUsernameTreatedAsIdenticalUser'] = isSameUsernameTreatedAsIdenticalUser }
+    for (const [key, value] of Object.entries(requestParams)) {
+      if (req.body[value] != null) { delete requestParams[key] }
+    }
 
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);