store.dispatch(loadVocabulary);
store.dispatch(loadFileViewersConfig);
- const TokenComponent = (props: any) => <ApiToken authService={services.authService} {...props} />;
+ const TokenComponent = (props: any) => <ApiToken authService={services.authService} config={config} {...props} />;
const MainPanelComponent = (props: any) => <MainPanel {...props} />;
const App = () =>
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<string | null> => {
services.authService.saveSessions(getState().auth.sessions);
};
+export const initSessions = (authService: AuthService, config: Config, user: User) =>
+ (dispatch: Dispatch<any>) => {
+ const sessions = authService.buildSessions(config, user);
+ authService.saveSessions(sessions);
+ dispatch(authActions.SET_SESSIONS(sessions));
+ };
+
export const loadSiteManagerPanel = () =>
async (dispatch: Dispatch<any>) => {
try {
import { User } from "~/models/user";
import { Session } from "~/models/session";
import { Config } from '~/common/config';
+import { initSessions } from "~/store/auth/auth-action-session";
export const authActions = unionize({
SAVE_API_TOKEN: ofType<string>(),
}
if (token && user) {
dispatch(authActions.INIT({ user, token }));
+ dispatch<any>(initSessions(services.authService, config, user));
}
- const sessions = services.authService.buildSessions(config, user);
- services.authService.saveSessions(sessions);
- dispatch(authActions.SET_SESSIONS(sessions));
};
export const saveApiToken = (token: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
import { RouteProps } from "react-router";
import * as React from "react";
import { connect, DispatchProp } from "react-redux";
-import { getUserDetails, saveApiToken } from "~/store/auth/auth-action";
+import { authActions, getUserDetails, saveApiToken } from "~/store/auth/auth-action";
import { getUrlParameter } from "~/common/url";
import { AuthService } from "~/services/auth-service/auth-service";
import { navigateToRootProject } from "~/store/navigation/navigation-action";
+import { User } from "~/models/user";
+import { Config } from "~/common/config";
+import { initSessions } from "~/store/auth/auth-action-session";
interface ApiTokenProps {
authService: AuthService;
+ config: Config;
}
export const ApiToken = connect()(
const search = this.props.location ? this.props.location.search : "";
const apiToken = getUrlParameter(search, 'api_token');
this.props.dispatch(saveApiToken(apiToken));
- this.props.dispatch<any>(getUserDetails()).finally(() => {
+ this.props.dispatch<any>(getUserDetails()).then((user: User) => {
+ this.props.dispatch(initSessions(this.props.authService, this.props.config, user));
+ }).finally(() => {
this.props.dispatch(navigateToRootProject);
});
}