Browse Source

Merge branch 'master' into fix/gw6573-lsx-on-search-result

Yuki Takei 4 years ago
parent
commit
bf6af6fc5f

+ 11 - 9
src/client/js/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx

@@ -127,15 +127,17 @@ const CustomBotWithProxySettings = (props) => {
             </React.Fragment>
             </React.Fragment>
           );
           );
         })}
         })}
-        <div className="row justify-content-center my-5">
-          <button
-            type="button"
-            className="btn btn-outline-primary"
-            onClick={addSlackAppIntegrationHandler}
-          >
-            {`+ ${t('admin:slack_integration.accordion.add_slack_workspace')}`}
-          </button>
-        </div>
+        {slackAppIntegrations.length < 10 && (
+          <div className="row justify-content-center my-5">
+            <button
+              type="button"
+              className="btn btn-outline-primary"
+              onClick={addSlackAppIntegrationHandler}
+            >
+              {`+ ${t('admin:slack_integration.accordion.add_slack_workspace')}`}
+            </button>
+          </div>
+        )}
       </div>
       </div>
       <DeleteSlackBotSettingsModal
       <DeleteSlackBotSettingsModal
         isResetAll={false}
         isResetAll={false}

+ 5 - 3
src/server/models/slack-app-integration.js

@@ -5,14 +5,16 @@ const schema = new mongoose.Schema({
   tokenGtoP: { type: String, required: true, unique: true },
   tokenGtoP: { type: String, required: true, unique: true },
   tokenPtoG: { type: String, required: true, unique: true },
   tokenPtoG: { type: String, required: true, unique: true },
 });
 });
+
 class SlackAppIntegration {
 class SlackAppIntegration {
 
 
   static generateAccessTokens() {
   static generateAccessTokens() {
+    const now = new Date().getTime();
     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 tokenPtoG = hasher2.update(new Date().getTime().toString() + process.env.SALT_FOR_PTOG_TOKEN);
-    return [tokenGtoP.digest('base64'), tokenPtoG.digest('base64')];
+    const tokenGtoP = hasher1.update(`gtop${now.toString()}${process.env.SALT_FOR_GTOP_TOKEN}`).digest('base64');
+    const tokenPtoG = hasher2.update(`ptog${now.toString()}${process.env.SALT_FOR_PTOG_TOKEN}`).digest('base64');
+    return [tokenGtoP, tokenPtoG];
   }
   }
 
 
   static async generateUniqueAccessTokens() {
   static async generateUniqueAccessTokens() {

+ 1 - 1
src/server/plugins/plugin-utils.js

@@ -57,7 +57,7 @@ class PluginUtils {
    * @memberOf PluginService
    * @memberOf PluginService
    */
    */
   listPlugins(rootDir) {
   listPlugins(rootDir) {
-    const packagePath = path.join(rootDir, 'package.json');
+    const packagePath = path.join(rootDir, 'packages/app/package.json');
 
 
     // Make sure package.json exists
     // Make sure package.json exists
     if (!fs.existsSync(packagePath)) {
     if (!fs.existsSync(packagePath)) {