itizawa 6 лет назад
Родитель
Сommit
1c2827ed53

+ 2 - 2
src/client/js/components/Admin/Security/TwitterSecuritySetting.jsx

@@ -95,7 +95,7 @@ class TwitterSecurityManagement extends React.Component {
                   className="form-control"
                   type="text"
                   name="TwitterConsumerId"
-                  value={adminTwitterSecurityContainer.state.TwitterConsumerId}
+                  value={adminTwitterSecurityContainer.state.twitterConsumerId}
                   onChange={e => adminTwitterSecurityContainer.changeTwitterConsumerId(e.target.value)}
                 />
                 <p className="help-block">
@@ -111,7 +111,7 @@ class TwitterSecurityManagement extends React.Component {
                   className="form-control"
                   type="text"
                   name="TwitterConsumerSecret"
-                  value={adminTwitterSecurityContainer.state.TwitterConsumerSecret}
+                  value={adminTwitterSecurityContainer.state.twitterConsumerSecret}
                   onChange={e => adminTwitterSecurityContainer.changeTwitterConsumerSecret(e.target.value)}
                 />
                 <p className="help-block">

+ 12 - 14
src/client/js/services/AdminTwitterSecurityContainer.js

@@ -74,20 +74,18 @@ export default class AdminTwitterSecurityContainer extends Container {
    */
   async updateTwitterSetting() {
 
-    console.log('ここはコンテナー');
-
-    // const response = await this.appContainer.apiv3.put('/security-setting/twitterOAuth', {
-    //   twitterConsumerId: this.state.twitterConsumerId,
-    //   twitterConsumerSecret: this.state.twitterConsumerSecret,
-    //   isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
-    // });
-
-    // this.setState({
-    //   twitterConsumerId: this.state.twitterConsumerId,
-    //   twitterConsumerSecret: this.state.twitterConsumerSecret,
-    //   isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
-    // });
-    // return response;
+    const response = await this.appContainer.apiv3.put('/security-setting/twitter-oauth', {
+      twitterConsumerId: this.state.twitterConsumerId,
+      twitterConsumerSecret: this.state.twitterConsumerSecret,
+      isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
+    });
+
+    this.setState({
+      twitterConsumerId: this.state.twitterConsumerId,
+      twitterConsumerSecret: this.state.twitterConsumerSecret,
+      isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
+    });
+    return response;
   }
 
 }

+ 30 - 3
src/server/routes/apiv3/security-setting.js

@@ -23,6 +23,9 @@ const validator = {
     body('hideRestrictedByOwner').isBoolean(),
     body('hideRestrictedByGroup').isBoolean(),
   ],
+  twitterOAuth: [
+
+  ],
 };
 
 /**
@@ -91,9 +94,9 @@ module.exports = (crowi) => {
         isTwitterOAuthEnabled: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isEnabled'),
       },
       twitterOAuth: {
-        twitterConsumerId: await crowi.configManager.getConfig('crowi', 'settingForm[security:passport-twitter:consumerKey') || '',
-        twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'settingForm[security:passport-twitter:consumerSecret') || '',
-        isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'settingForm[security:passport-twitter:isSameUsernameTreatedAsIdenticalUser') || false,
+        twitterConsumerId: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerKey') || '',
+        twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerSecret') || '',
+        isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser') || false,
       },
     };
 
@@ -243,5 +246,29 @@ module.exports = (crowi) => {
     }
   });
 
+  // TODO swagger
+  router.put('/twitter-oauth', loginRequiredStrictly, adminRequired, csrf, validator.twitterOAuth, ApiV3FormValidator, async(req, res) => {
+    const requestParams = {
+      'security:passport-twitter:consumerKey': req.body.twitterConsumerId,
+      'security:passport-twitter:consumerSecret': req.body.twitterConsumerSecret,
+      'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser': req.body.isSameUsernameTreatedAsIdenticalUser,
+    };
+
+    try {
+      await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
+      const securitySettingParams = {
+        twitterConsumerId: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerKey'),
+        twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerKey'),
+        isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser'),
+      };
+      return res.apiv3({ securitySettingParams });
+    }
+    catch (err) {
+      const msg = 'Error occurred in updating twitterOAuth';
+      logger.error('Error', err);
+      return res.apiv3Err(new ErrorV3(msg, 'update-twitterOAuth-failed'));
+    }
+  });
+
   return router;
 };