Преглед изворни кода

implement accessTokenParserForSlackBot

itizawa пре 5 година
родитељ
комит
f315c53cbf
1 измењених фајлова са 17 додато и 1 уклоњено
  1. 17 1
      src/server/routes/apiv3/slack-bot.js

+ 17 - 1
src/server/routes/apiv3/slack-bot.js

@@ -1,5 +1,6 @@
 
 
 const express = require('express');
 const express = require('express');
+const mongoose = require('mongoose');
 
 
 const router = express.Router();
 const router = express.Router();
 
 
@@ -8,7 +9,22 @@ module.exports = (crowi) => {
   const { boltService } = crowi;
   const { boltService } = crowi;
   const requestHandler = boltService.receiver.requestHandler.bind(boltService.receiver);
   const requestHandler = boltService.receiver.requestHandler.bind(boltService.receiver);
 
 
-  router.post('/', async(req, res) => {
+  function accessTokenParserForSlackBot(req, res, next) {
+    const slackBotAccessToken = req.body.slack_bot_access_token || null;
+    if (slackBotAccessToken == null) {
+      return next();
+    }
+
+    if (slackBotAccessToken === crowi.configManager.getConfig('crowi', 'slackbot:access-token')) {
+      req.body.user = {
+        id: new mongoose.Types.ObjectId(),
+        username: 'slackBot',
+      };
+    }
+    next();
+  }
+
+  router.post('/', accessTokenParserForSlackBot, async(req, res) => {
     // for verification request URL on Event Subscriptions
     // for verification request URL on Event Subscriptions
     if (req.body.type === 'url_verification') {
     if (req.body.type === 'url_verification') {
       res.send(req.body);
       res.send(req.body);