Browse Source

validation

itizawa 6 years ago
parent
commit
a4c436607c
1 changed files with 15 additions and 0 deletions
  1. 15 0
      src/server/routes/apiv3/security-setting.js

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

@@ -70,6 +70,7 @@ const validator = {
     body('isSameUsernameTreatedAsIdenticalUser').isBoolean(),
     body('isSameUsernameTreatedAsIdenticalUser').isBoolean(),
   ],
   ],
   twitterOAuth: [
   twitterOAuth: [
+    body('isTwitterOAuthEnabled').isBoolean(),
     body('twitterConsumerKey').isString(),
     body('twitterConsumerKey').isString(),
     body('twitterConsumerSecret').isString(),
     body('twitterConsumerSecret').isString(),
     body('isSameUsernameTreatedAsIdenticalUser').isBoolean(),
     body('isSameUsernameTreatedAsIdenticalUser').isBoolean(),
@@ -737,6 +738,7 @@ module.exports = (crowi) => {
    */
    */
   router.put('/twitter-oauth', loginRequiredStrictly, adminRequired, csrf, validator.twitterOAuth, ApiV3FormValidator, async(req, res) => {
   router.put('/twitter-oauth', loginRequiredStrictly, adminRequired, csrf, validator.twitterOAuth, ApiV3FormValidator, async(req, res) => {
     const requestParams = {
     const requestParams = {
+      'security:passport-twitter:isEnabled': req.body.isTwitterOAuthEnabled,
       'security:passport-twitter:consumerKey': req.body.twitterConsumerKey,
       'security:passport-twitter:consumerKey': req.body.twitterConsumerKey,
       'security:passport-twitter:consumerSecret': req.body.twitterConsumerSecret,
       'security:passport-twitter:consumerSecret': req.body.twitterConsumerSecret,
       'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser': req.body.isSameUsernameTreatedAsIdenticalUser,
       'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser': req.body.isSameUsernameTreatedAsIdenticalUser,
@@ -749,13 +751,26 @@ module.exports = (crowi) => {
         twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerSecret'),
         twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerSecret'),
         isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser'),
         isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:isSameUsernameTreatedAsIdenticalUser'),
       };
       };
+
+      // reset strategy
+      await crowi.passportService.resetTwitterStrategy();
+
+      // setup strategy
+      if (crowi.configManager.getConfig('crowi', 'security:passport-twitter:isEnabled')) {
+        await crowi.passportService.setupTwitterStrategy(true);
+      }
+
       return res.apiv3({ securitySettingParams });
       return res.apiv3({ securitySettingParams });
     }
     }
     catch (err) {
     catch (err) {
+      // reset
+      await crowi.passportService.resetTwitterStrategy();
       const msg = 'Error occurred in updating twitterOAuth';
       const msg = 'Error occurred in updating twitterOAuth';
       logger.error('Error', err);
       logger.error('Error', err);
       return res.apiv3Err(new ErrorV3(msg, 'update-twitterOAuth-failed'));
       return res.apiv3Err(new ErrorV3(msg, 'update-twitterOAuth-failed'));
     }
     }
+
+
   });
   });
 
 
   return router;
   return router;