From 84b358aecd236a0504c92dd9c4b95ba8413bda47 Mon Sep 17 00:00:00 2001
From: rbisson <remi.bisson@inrae.fr>
Date: Thu, 11 Apr 2024 15:44:04 +0200
Subject: [PATCH 1/2] [src]: regrouped url building in utils and adjusted ports
 ternaries

---
 src/actions/group.js       |  5 +++--
 src/actions/policy.js      |  5 +++--
 src/actions/source.js      |  4 ++--
 src/actions/user.js        |  5 +++--
 src/context/UserContext.js | 16 +++++++---------
 src/index.js               |  9 +++------
 src/utils.js               | 19 ++++++++++++-------
 7 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/src/actions/group.js b/src/actions/group.js
index 5688fa3..5889061 100644
--- a/src/actions/group.js
+++ b/src/actions/group.js
@@ -1,7 +1,8 @@
 import { InSylvaGatekeeperClient } from '../context/InSylvaGatekeeperClient';
+import {getGatekeeperBaseUrl} from "../utils";
 
 const igClient = new InSylvaGatekeeperClient();
-igClient.baseUrl = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}:${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}`
+igClient.baseUrl = getGatekeeperBaseUrl();
 
 export const createGroup = async (store, name, description, kcId, request = igClient) => {
     try {
@@ -145,4 +146,4 @@ export const deleteGroupUser = async (store, groupId, userId, request = igClient
         const status = isError404 ? "NOT_FOUND" : "ERROR"
         store.setState({ status, isLoading: false })
     }
-}
\ No newline at end of file
+}
diff --git a/src/actions/policy.js b/src/actions/policy.js
index fe036b5..63c5798 100644
--- a/src/actions/policy.js
+++ b/src/actions/policy.js
@@ -1,7 +1,8 @@
 import { InSylvaGatekeeperClient } from '../context/InSylvaGatekeeperClient';
+import {getGatekeeperBaseUrl} from "../utils";
 
 const igClient = new InSylvaGatekeeperClient();
-igClient.baseUrl = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}:${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}`
+igClient.baseUrl = getGatekeeperBaseUrl();
 
 export const createPolicy = async (store, name, kcId, request = igClient) => {
     try {
@@ -260,4 +261,4 @@ export const createPolicySource = async (store, policyId, sourceId, request = ig
         const status = isError404 ? "NOT_FOUND" : "ERROR"
         store.setState({ status, isLoading: false })
     }
-}
\ No newline at end of file
+}
diff --git a/src/actions/source.js b/src/actions/source.js
index 656959c..669f0d4 100644
--- a/src/actions/source.js
+++ b/src/actions/source.js
@@ -1,7 +1,7 @@
 import { InSylvaSourceManager } from '../context/InSylvaSourceManager'
 
 const smClient = new InSylvaSourceManager();
-smClient.baseUrl = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_SOURCE_MANAGER_HOST}:${process.env.REACT_APP_IN_SYLVA_SOURCE_MANAGER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_SOURCE_MANAGER_HOST}`
+smClient.baseUrl = (process.env.REACT_APP_IN_SYLVA_SOURCE_MANAGER_PORT) ? `${process.env.REACT_APP_IN_SYLVA_SOURCE_MANAGER_HOST}:${process.env.REACT_APP_IN_SYLVA_SOURCE_MANAGER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_SOURCE_MANAGER_HOST}`
 
 export const createSource = async (store, metaUrfms, name, description, kc_id, request = smClient) => {
     try {
@@ -246,4 +246,4 @@ export const mergeAndSendSource = async (store, kc_id, name, description, source
         const status = isError404 ? "NOT_FOUND" : "ERROR"
         store.setState({ status, isLoading: false })
     }
-}
\ No newline at end of file
+}
diff --git a/src/actions/user.js b/src/actions/user.js
index 0b1a535..e4fd22d 100644
--- a/src/actions/user.js
+++ b/src/actions/user.js
@@ -1,7 +1,8 @@
 import { InSylvaGatekeeperClient } from '../context/InSylvaGatekeeperClient';
+import {getGatekeeperBaseUrl} from "../utils";
 
 const igClient = new InSylvaGatekeeperClient();
-igClient.baseUrl = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}:${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}`
+igClient.baseUrl = getGatekeeperBaseUrl();
 
 export const createUser = async (store, username, email, password, roleId, request = igClient) => {
     try {
@@ -317,4 +318,4 @@ export const usersWithGroupAndRole = async (store, id, request = igClient) => {
         const status = isError404 ? "NOT_FOUND" : "ERROR"
         store.setState({ status, isLoading: false })
     }
-}
\ No newline at end of file
+}
diff --git a/src/context/UserContext.js b/src/context/UserContext.js
index cdcbb86..58e1b0b 100644
--- a/src/context/UserContext.js
+++ b/src/context/UserContext.js
@@ -2,21 +2,19 @@ import React from "react";
 
 import { KeycloakClient } from './KeycloakClient'
 import { InSylvaGatekeeperClient } from './InSylvaGatekeeperClient'
-import { redirect } from '../utils.js';
+import {getGatekeeperBaseUrl, getLoginUrl, redirect} from '../utils.js';
 
 const UserStateContext = React.createContext();
 const UserDispatchContext = React.createContext();
 
 const kcClient = new KeycloakClient();
-kcClient.baseUrl = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_KEYCLOAK_HOST}:${process.env.REACT_APP_IN_SYLVA_KEYCLOAK_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_KEYCLOAK_HOST}`
-kcClient.realm = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_REALM}` : `${window._env_.REACT_APP_IN_SYLVA_REALM}`
-kcClient.client_id = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_CLIENT_ID}` : `${window._env_.REACT_APP_IN_SYLVA_CLIENT_ID}`
-kcClient.grant_type = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_GRANT_TYPE}` : `${window._env_.REACT_APP_IN_SYLVA_GRANT_TYPE}`
+kcClient.baseUrl = (process.env.REACT_APP_IN_SYLVA_KEYCLOAK_PORT) ? `${process.env.REACT_APP_IN_SYLVA_KEYCLOAK_HOST}:${process.env.REACT_APP_IN_SYLVA_KEYCLOAK_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_KEYCLOAK_HOST}`
+kcClient.realm = (process.env.REACT_APP_IN_SYLVA_KEYCLOAK_PORT) ? `${process.env.REACT_APP_IN_SYLVA_REALM}` : `${window._env_.REACT_APP_IN_SYLVA_REALM}`
+kcClient.client_id = (process.env.REACT_APP_IN_SYLVA_KEYCLOAK_PORT) ? `${process.env.REACT_APP_IN_SYLVA_CLIENT_ID}` : `${window._env_.REACT_APP_IN_SYLVA_CLIENT_ID}`
+kcClient.grant_type = (process.env.REACT_APP_IN_SYLVA_KEYCLOAK_PORT) ? `${process.env.REACT_APP_IN_SYLVA_GRANT_TYPE}` : `${window._env_.REACT_APP_IN_SYLVA_GRANT_TYPE}`
 
 const igClient = new InSylvaGatekeeperClient();
-igClient.baseUrl = (process.env.REACT_APP_PORT) ? `${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}:${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}`
-
-const loginUrl = process.env.REACT_APP_IN_SYLVA_LOGIN_PORT ? `${process.env.REACT_APP_IN_SYLVA_LOGIN_HOST}:${process.env.REACT_APP_IN_SYLVA_LOGIN_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_LOGIN_HOST}`
+igClient.baseUrl = getGatekeeperBaseUrl();
 
 function userReducer(state, action) {
   switch (action.type) {
@@ -91,7 +89,7 @@ async function signOut(dispatch, history) {
   sessionStorage.removeItem("portal");
   sessionStorage.removeItem("userId")
   sessionStorage.removeItem("roleId")
-  redirect(loginUrl + '?requestType=portal')
+  redirect(getLoginUrl() + '?requestType=portal')
 }
 
 export { UserProvider, useUserState, useUserDispatch, signOut, checkUserLogin };
diff --git a/src/index.js b/src/index.js
index 5298518..5870165 100755
--- a/src/index.js
+++ b/src/index.js
@@ -2,15 +2,12 @@ import React from "react";
 import ReactDOM from "react-dom";
 import { ThemeProvider } from "@material-ui/styles";
 import { CssBaseline } from "@material-ui/core";
-
 import Themes from "./themes";
 import '@elastic/eui/dist/eui_theme_light.css';
 import App from "./components/App";
 import { LayoutProvider } from "./context/LayoutContext";
 import { UserProvider, checkUserLogin } from "./context/UserContext";
-import { getUrlParam, redirect } from './utils.js';
-
-const loginUrl = process.env.REACT_APP_IN_SYLVA_LOGIN_PORT ? `${process.env.REACT_APP_IN_SYLVA_LOGIN_HOST}:${process.env.REACT_APP_IN_SYLVA_LOGIN_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_LOGIN_HOST}`
+import {getLoginUrl, getUrlParam, redirect} from './utils.js';
 
 const userId = getUrlParam("kcId", "")
 const accessToken = getUrlParam("accessToken", "")
@@ -22,7 +19,7 @@ if (refreshToken.includes('#/app/portal'))
 
 checkUserLogin(userId, accessToken, refreshToken,roleId)
 
-//To-Do 
+//To-Do
 // * delete previous tokens from session storage
 // * refresh tokens
 
@@ -39,7 +36,7 @@ if (sessionStorage.getItem("access_token")) {
     document.getElementById("root"),
   );
 } else {
-  redirect(loginUrl + '?requestType=portal')
+  redirect(getLoginUrl() + '?requestType=portal')
 }
 
 
diff --git a/src/utils.js b/src/utils.js
index 9ec1d76..0ed0a21 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -1,3 +1,11 @@
+export const getGatekeeperBaseUrl = () => {
+    return process.env.REACT_APP_IN_SYLVA_GATEKEEPER_PORT ? `${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}:${process.env.REACT_APP_IN_SYLVA_GATEKEEPER_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_GATEKEEPER_HOST}`
+}
+
+export const getLoginUrl = () => {
+    return process.env.REACT_APP_IN_SYLVA_LOGIN_PORT ? `${process.env.REACT_APP_IN_SYLVA_LOGIN_HOST}:${process.env.REACT_APP_IN_SYLVA_LOGIN_PORT}` : `${window._env_.REACT_APP_IN_SYLVA_LOGIN_HOST}`;
+}
+
 export const getUrlParams = () => {
     let lets = {};
     window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
@@ -6,8 +14,8 @@ export const getUrlParams = () => {
     return lets;
 }
 
-export const getUrlParam = (parameter, defaultvalue) => {
-    let urlParameter = defaultvalue;
+export const getUrlParam = (parameter, defaultValue) => {
+    let urlParameter = defaultValue;
     if (window.location.href.indexOf(parameter) > -1) {
         urlParameter = getUrlParams()[parameter];
     }
@@ -28,8 +36,5 @@ export const redirect = (url, condition = true) => {
 
 export const tokenTimedOut = (validityDurationInMin) => {
     const timeSinceLastRefresh = Date.now() - sessionStorage.getItem("token_refresh_time")
-    if (timeSinceLastRefresh > (validityDurationInMin * 60000)) {
-        return true
-    }
-    return false
-}
\ No newline at end of file
+    return timeSinceLastRefresh > (validityDurationInMin * 60000);
+}
-- 
GitLab


From da15f0be48750fb9d1b5cb9c6a66e4f9f085212a Mon Sep 17 00:00:00 2001
From: rbisson <remi.bisson@inrae.fr>
Date: Thu, 11 Apr 2024 15:44:38 +0200
Subject: [PATCH 2/2] [package.json]: removed PORT from start script

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 9916c66..a4922e2 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
     "tinycolor2": "^1.4.1"
   },
   "scripts": {
-    "start": "PORT=3005 react-scripts start",
+    "start": "react-scripts start",
     "build": "react-scripts build",
     "test": "react-scripts test",
     "eject": "react-scripts eject"
@@ -47,4 +47,4 @@
   "devDependencies": {
     "jscs": "^3.0.7"
   }
-}
\ No newline at end of file
+}
-- 
GitLab