import { Config } from "~/common/config";
import { uniqBy } from "lodash";
+export const TARGET_URL = 'targetURL';
export const API_TOKEN_KEY = 'apiToken';
export const USER_EMAIL_KEY = 'userEmail';
export const USER_FIRST_NAME_KEY = 'userFirstName';
}
}
+ public removeTargetURL() {
+ this.getStorage().removeItem(TARGET_URL);
+ }
+
+ public getTargetURL() {
+ return this.getStorage().getItem(TARGET_URL);
+ }
+
public removeApiToken() {
this.getStorage().removeItem(API_TOKEN_KEY);
}
this.getStorage().removeItem(USER_IS_ACTIVE);
this.getStorage().removeItem(USER_USERNAME);
this.getStorage().removeItem(USER_PREFS);
+ this.getStorage().removeItem(TARGET_URL);
}
public login(uuidPrefix: string, homeCluster: string, loginCluster: string, remoteHosts: { [key: string]: string }) {
const currentUrl = `${window.location.protocol}//${window.location.host}/token`;
const homeClusterHost = remoteHosts[homeCluster];
+ const rd = new URL(window.location.href);
+ this.getStorage().setItem(TARGET_URL, rd.pathname + rd.search);
window.location.assign(`https://${homeClusterHost}/login?${(uuidPrefix !== homeCluster && homeCluster !== loginCluster) ? "remote=" + uuidPrefix + "&" : ""}return_to=${currentUrl}`);
}
- public logout() {
+ public logout(expireToken: string) {
const currentUrl = `${window.location.protocol}//${window.location.host}`;
- window.location.assign(`${this.baseUrl || ""}/logout?return_to=${currentUrl}`);
+ window.location.assign(`${this.baseUrl || ""}/logout?api_token=${expireToken}&return_to=${currentUrl}`);
}
- public getUserDetails = (): Promise<User> => {
+ public getUserDetails = (showErrors?: boolean): Promise<User> => {
const reqId = uuid();
this.actions.progressFn(reqId, true);
return this.apiClient
})
.catch(e => {
this.actions.progressFn(reqId, false);
- this.actions.errorFn(reqId, e);
+ this.actions.errorFn(reqId, e, showErrors);
throw e;
});
}