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);
}
return this.getStorage().getItem(HOME_CLUSTER) || undefined;
}
+ public getApiClient() {
+ return this.apiClient;
+ }
+
public removeUser() {
this.getStorage().removeItem(USER_EMAIL_KEY);
this.getStorage().removeItem(USER_FIRST_NAME_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 = (showErrors?: boolean): Promise<User> => {
clusterId: cfg.uuidPrefix,
remoteHost: cfg.rootUrl,
baseUrl: cfg.baseUrl,
- name: user ? getUserDisplayName(user): '',
+ name: user ? getUserDisplayName(user) : '',
email: user ? user.email : '',
+ userIsActive: user ? user.isActive : false,
token: this.getApiToken(),
loggedIn: true,
active: true,