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