|
|
@@ -2,8 +2,6 @@ const mongoose = require('mongoose');
|
|
|
const express = require('express');
|
|
|
const { body } = require('express-validator');
|
|
|
const axios = require('axios');
|
|
|
-const crypto = require('crypto');
|
|
|
-
|
|
|
const loggerFactory = require('@alias/logger');
|
|
|
|
|
|
const { getConnectionStatuses } = require('@growi/slack');
|
|
|
@@ -82,14 +80,6 @@ module.exports = (crowi) => {
|
|
|
return configManager.updateConfigsInTheSameNamespace('crowi', params, true);
|
|
|
}
|
|
|
|
|
|
- // eslint-disable-next-line no-unused-vars
|
|
|
- function generateAccessToken(user) {
|
|
|
- const hasher = crypto.createHash('sha512');
|
|
|
- hasher.update(new Date().getTime() + user._id);
|
|
|
-
|
|
|
- return hasher.digest('base64');
|
|
|
- }
|
|
|
-
|
|
|
async function getConnectionStatusesFromProxy(tokens) {
|
|
|
const csv = tokens.join(',');
|
|
|
|
|
|
@@ -268,29 +258,29 @@ module.exports = (crowi) => {
|
|
|
/**
|
|
|
* @swagger
|
|
|
*
|
|
|
- * /slack-integration/access-token:
|
|
|
+ * /slack-integration/access-tokens:
|
|
|
* put:
|
|
|
* tags: [SlackIntegration]
|
|
|
- * operationId:
|
|
|
+ * operationId: putAccessTokens
|
|
|
* summary: /slack-integration
|
|
|
- * description: Generate accessToken
|
|
|
+ * description: Generate accessTokens
|
|
|
* responses:
|
|
|
* 200:
|
|
|
- * description: Succeeded to update access token for slack
|
|
|
+ * description: Succeeded to update access tokens for slack
|
|
|
*/
|
|
|
router.put('/access-tokens', loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
|
|
|
const SlackAppIntegration = mongoose.model('SlackAppIntegration');
|
|
|
let checkTokens;
|
|
|
let tokenGtoP;
|
|
|
let tokenPtoG;
|
|
|
+ let generateTokens;
|
|
|
do {
|
|
|
- // TODO imple generate tokens at GW-5859. The following tokens is temporary.
|
|
|
- tokenGtoP = 'v2';
|
|
|
- tokenPtoG = 'v2';
|
|
|
+ generateTokens = SlackAppIntegration.generateAccessToken();
|
|
|
+ tokenGtoP = generateTokens[0];
|
|
|
+ tokenPtoG = generateTokens[1];
|
|
|
// eslint-disable-next-line no-await-in-loop
|
|
|
checkTokens = await SlackAppIntegration.findOne({ $or: [{ tokenGtoP }, { tokenPtoG }] });
|
|
|
} while (checkTokens != null);
|
|
|
-
|
|
|
try {
|
|
|
const slackAppTokens = await SlackAppIntegration.create({ tokenGtoP, tokenPtoG });
|
|
|
return res.apiv3(slackAppTokens, 200);
|