Przeglądaj źródła

twitter remove null

itizawa 6 lat temu
rodzic
commit
19c216255c

+ 9 - 5
src/client/js/services/AdminTwitterSecurityContainer.js

@@ -26,6 +26,7 @@ export default class AdminTwitterSecurityContainer extends Container {
       isSameUsernameTreatedAsIdenticalUser: false,
     };
 
+    this.updateTwitterSetting = this.updateTwitterSetting.bind(this);
   }
 
   /**
@@ -73,12 +74,15 @@ export default class AdminTwitterSecurityContainer extends Container {
    * Update twitterSetting
    */
   async updateTwitterSetting() {
+    const { twitterConsumerKey, twitterConsumerSecret, isSameUsernameTreatedAsIdenticalUser } = this.state;
 
-    const response = await this.appContainer.apiv3.put('/security-setting/twitter-oauth', {
-      twitterConsumerKey: this.state.twitterConsumerKey,
-      twitterConsumerSecret: this.state.twitterConsumerSecret,
-      isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
-    });
+    const requestParams = [];
+
+    if (twitterConsumerKey != null) { requestParams.push({ twitterConsumerKey }) }
+    if (twitterConsumerSecret != null) { requestParams.push({ twitterConsumerSecret }) }
+    if (isSameUsernameTreatedAsIdenticalUser != null) { requestParams.push({ isSameUsernameTreatedAsIdenticalUser }) }
+
+    const response = await this.appContainer.apiv3.put('/security-setting/twitter-oauth', ...requestParams);
 
     const { securitySettingParams } = response.data;
 

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

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