Pārlūkot izejas kodu

Merge branch 'feat/growi-bot' into feat/5907-6185-imprv-accordion-header

itizawa 4 gadi atpakaļ
vecāks
revīzija
7cac9b6e0d

+ 5 - 2
src/client/js/components/Admin/SlackIntegration/Bridge.jsx

@@ -4,8 +4,11 @@ import PropTypes from 'prop-types';
 import { UncontrolledTooltip } from 'reactstrap';
 import { UncontrolledTooltip } from 'reactstrap';
 
 
 const ProxyCircle = () => (
 const ProxyCircle = () => (
-  <div className="grw-bridge-proxy-circle position-absolute bg-primary border-light">
-    <p className="circle-inner text-light font-weight-bold">Proxy Server</p>
+  <div className="grw-bridge-proxy-circle">
+    <div className="circle position-absolute bg-primary border-light rounded-circle">
+      <p className="circle-inner text-light font-weight-bold d-none d-lg-inline">Proxy Server</p>
+      <p className="circle-inner mt-5 d-block d-lg-none">ProxyServer</p>
+    </div>
   </div>
   </div>
 );
 );
 
 

+ 12 - 6
src/client/styles/scss/_admin.scss

@@ -136,12 +136,18 @@ $slack-work-space-name-card-border: #efc1f6;
     }
     }
 
 
     .grw-bridge-proxy-circle {
     .grw-bridge-proxy-circle {
-      left: 50%;
-      width: 100px;
-      height: 100px;
-      border: 13px solid;
-      border-radius: 50%;
-      transform: translate(-50%, -50%);
+      .circle {
+        left: 50%;
+        width: 100px;
+        height: 100px;
+        border: 13px solid;
+        transform: translate(-50%, -50%);
+        @include media-breakpoint-down(md) {
+          width: 50px;
+          height: 50px;
+          border: 8px solid;
+        }
+      }
 
 
       .circle-inner {
       .circle-inner {
         position: absolute;
         position: absolute;

+ 19 - 1
src/server/models/slack-app-integration.js

@@ -7,7 +7,7 @@ const schema = new mongoose.Schema({
 });
 });
 class SlackAppIntegration {
 class SlackAppIntegration {
 
 
-  static generateAccessToken() {
+  static generateAccessTokens() {
     const hasher1 = crypto.createHash('sha512');
     const hasher1 = crypto.createHash('sha512');
     const hasher2 = crypto.createHash('sha512');
     const hasher2 = crypto.createHash('sha512');
     const tokenGtoP = hasher1.update(new Date().getTime().toString() + process.env.SALT_FOR_GTOP_TOKEN);
     const tokenGtoP = hasher1.update(new Date().getTime().toString() + process.env.SALT_FOR_GTOP_TOKEN);
@@ -15,6 +15,24 @@ class SlackAppIntegration {
     return [tokenGtoP.digest('base64'), tokenPtoG.digest('base64')];
     return [tokenGtoP.digest('base64'), tokenPtoG.digest('base64')];
   }
   }
 
 
+  static async generateUniqueAccessTokens() {
+    let duplicateTokens;
+    let tokenGtoP;
+    let tokenPtoG;
+    let generateTokens;
+
+    do {
+      generateTokens = this.generateAccessTokens();
+      tokenGtoP = generateTokens[0];
+      tokenPtoG = generateTokens[1];
+      // eslint-disable-next-line no-await-in-loop
+      duplicateTokens = await this.findOne({ $or: [{ tokenGtoP }, { tokenPtoG }] });
+    } while (duplicateTokens != null);
+
+
+    return { tokenGtoP, tokenPtoG };
+  }
+
 }
 }
 
 
 module.exports = function(crowi) {
 module.exports = function(crowi) {

+ 8 - 21
src/server/routes/apiv3/slack-integration-settings.js

@@ -391,26 +391,16 @@ module.exports = (crowi) => {
       return res.apiv3Err(new ErrorV3(msg, 'create-slackAppIntegeration-failed'), 500);
       return res.apiv3Err(new ErrorV3(msg, 'create-slackAppIntegeration-failed'), 500);
     }
     }
 
 
-    let checkTokens;
-    let tokenGtoP;
-    let tokenPtoG;
-    let generateTokens;
-    // TODO: refactering generateAccessTokens by GW-6100
-    do {
-      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);
+    const { tokenGtoP, tokenPtoG } = await SlackAppIntegration.generateUniqueAccessTokens();
+
     try {
     try {
       const slackAppTokens = await SlackAppIntegration.create({ tokenGtoP, tokenPtoG });
       const slackAppTokens = await SlackAppIntegration.create({ tokenGtoP, tokenPtoG });
       return res.apiv3(slackAppTokens, 200);
       return res.apiv3(slackAppTokens, 200);
     }
     }
     catch (error) {
     catch (error) {
-      const msg = 'Error occured in updating access token for slack app tokens';
+      const msg = 'Error occurred during creating slack integration settings procedure';
       logger.error('Error', error);
       logger.error('Error', error);
-      return res.apiv3Err(new ErrorV3(msg, 'update-slackAppTokens-failed'), 500);
+      return res.apiv3Err(new ErrorV3(msg, 'creating-slack-integration-settings-procedure-failed'), 500);
     }
     }
   });
   });
 
 
@@ -427,23 +417,20 @@ module.exports = (crowi) => {
    *          200:
    *          200:
    *            description: Succeeded to regenerate slack app tokens
    *            description: Succeeded to regenerate slack app tokens
    */
    */
-  // TODO: refactering generateAccessTokens by GW-6100
   router.put('/regenerate-tokens', loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
   router.put('/regenerate-tokens', loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
 
 
     const { slackAppIntegrationId } = req.body;
     const { slackAppIntegrationId } = req.body;
 
 
     try {
     try {
-      const generateTokens = SlackAppIntegration.generateAccessToken();
-      const newTokenGtoP = generateTokens[0];
-      const newTokenPtoG = generateTokens[1];
-      const slackAppTokens = await SlackAppIntegration.findOneAndUpdate({ _id: slackAppIntegrationId }, { tokenGtoP: newTokenGtoP, tokenPtoG: newTokenPtoG });
+      const { tokenGtoP, tokenPtoG } = await SlackAppIntegration.generateUniqueAccessTokens();
+      const slackAppTokens = await SlackAppIntegration.findOneAndUpdate({ _id: slackAppIntegrationId }, { tokenGtoP, tokenPtoG });
 
 
       return res.apiv3(slackAppTokens, 200);
       return res.apiv3(slackAppTokens, 200);
     }
     }
     catch (error) {
     catch (error) {
-      const msg = 'Error occured in updating access token for slack app tokens';
+      const msg = 'Error occurred during regenerating slack app tokens';
       logger.error('Error', error);
       logger.error('Error', error);
-      return res.apiv3Err(new ErrorV3(msg, 'update-slackAppTokens-failed'), 500);
+      return res.apiv3Err(new ErrorV3(msg, 'regenerating-slackAppTokens-failed'), 500);
     }
     }
   });
   });