X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/f9dde5c781766b8be71d43d0f031c201a0edcfbb..47f421fa743e2b4b09d4f0fbfbead00545e327d4:/src/store/auth/auth-action-session.ts diff --git a/src/store/auth/auth-action-session.ts b/src/store/auth/auth-action-session.ts index 83e98e96..b32e2050 100644 --- a/src/store/auth/auth-action-session.ts +++ b/src/store/auth/auth-action-session.ts @@ -12,7 +12,7 @@ import { authActions } from "~/store/auth/auth-action"; import { Config, DISCOVERY_URL } from "~/common/config"; import { Session, SessionStatus } from "~/models/session"; import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions"; -import { UserDetailsResponse } from "~/services/auth-service/auth-service"; +import { AuthService, UserDetailsResponse } from "~/services/auth-service/auth-service"; import * as jsSHA from "jssha"; const getRemoteHostBaseUrl = async (remoteHost: string): Promise => { @@ -56,7 +56,7 @@ const getTokenUuid = async (baseUrl: string, token: string): Promise => return Promise.resolve(uuid); } - const resp = await Axios.get(`${baseUrl}/api_client_authorizations`, { + const resp = await Axios.get(`${baseUrl}api_client_authorizations`, { headers: { Authorization: `OAuth2 ${token}` }, @@ -80,7 +80,7 @@ const getSaltedToken = (clusterId: string, tokenUuid: string, token: string) => return `v2/${tokenUuid}/${hmac}`; }; -const clusterLogin = async (clusterId: string, baseUrl: string, activeSession: Session): Promise<{user: User, token: string}> => { +const clusterLogin = async (clusterId: string, baseUrl: string, activeSession: Session): Promise<{ user: User, token: string }> => { const tokenUuid = await getTokenUuid(activeSession.baseUrl, activeSession.token); const saltedToken = getSaltedToken(clusterId, tokenUuid, activeSession.token); const user = await getUserDetails(baseUrl, saltedToken); @@ -99,7 +99,7 @@ const clusterLogin = async (clusterId: string, baseUrl: string, activeSession: S }; }; -const getActiveSession = (sessions: Session[]): Session | undefined => sessions.find(s => s.active); +export const getActiveSession = (sessions: Session[]): Session | undefined => sessions.find(s => s.active); export const validateCluster = async (remoteHost: string, clusterId: string, activeSession: Session): Promise<{ user: User; token: string, baseUrl: string }> => { const baseUrl = await getRemoteHostBaseUrl(remoteHost); @@ -197,10 +197,17 @@ export const toggleSession = (session: Session) => services.authService.saveSessions(getState().auth.sessions); }; +export const initSessions = (authService: AuthService, config: Config, user: User) => + (dispatch: Dispatch) => { + const sessions = authService.buildSessions(config, user); + authService.saveSessions(sessions); + dispatch(authActions.SET_SESSIONS(sessions)); + }; + export const loadSiteManagerPanel = () => async (dispatch: Dispatch) => { try { - dispatch(setBreadcrumbs([{ label: 'Site Manager'}])); + dispatch(setBreadcrumbs([{ label: 'Site Manager' }])); dispatch(validateSessions()); } catch (e) { return;