4a91a7d2e2
* fix repo in api client Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: re-organise files to match their interface Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: include version in script tags Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * cleanup maybe broken Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * revert rename Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: get rid of Client.ts Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * move more to common Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * more moving Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * format Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * unfuck files that vscode fucked, thanks Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * move more Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * finish moving (maybe) Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * ok more moving Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix more stuff that vs code destroyed Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * get rid "web" prefix for virtual package Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix locales Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * use custom base element Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix css file Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * don't run autoDetectLanguage when importing locale Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix circular dependencies Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: fix build Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
57 lines
2 KiB
TypeScript
57 lines
2 KiB
TypeScript
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
|
import { activateLocale } from "@goauthentik/common/ui/locale";
|
|
|
|
import { CoreApi, ResponseError, SessionUser } from "@goauthentik/api";
|
|
|
|
let globalMePromise: Promise<SessionUser> | undefined;
|
|
|
|
export function refreshMe(): Promise<SessionUser> {
|
|
globalMePromise = undefined;
|
|
return me();
|
|
}
|
|
|
|
export function me(): Promise<SessionUser> {
|
|
if (!globalMePromise) {
|
|
globalMePromise = new CoreApi(DEFAULT_CONFIG)
|
|
.coreUsersMeRetrieve()
|
|
.then((user) => {
|
|
if (!user.user.settings || !("locale" in user.user.settings)) {
|
|
return user;
|
|
}
|
|
const locale = user.user.settings.locale;
|
|
if (locale && locale !== "") {
|
|
console.debug(
|
|
`authentik/locale: Activating user's configured locale '${locale}'`,
|
|
);
|
|
activateLocale(locale);
|
|
}
|
|
return user;
|
|
})
|
|
.catch((ex: ResponseError) => {
|
|
const defaultUser: SessionUser = {
|
|
user: {
|
|
pk: -1,
|
|
isSuperuser: false,
|
|
isActive: true,
|
|
groups: [],
|
|
avatar: "",
|
|
uid: "",
|
|
username: "",
|
|
name: "",
|
|
settings: {},
|
|
},
|
|
};
|
|
if (ex.response.status === 401 || ex.response.status === 403) {
|
|
const relativeUrl = window.location
|
|
.toString()
|
|
.substring(window.location.origin.length);
|
|
window.location.assign(
|
|
`/flows/-/default/authentication/?next=${encodeURIComponent(relativeUrl)}`,
|
|
);
|
|
}
|
|
return defaultUser;
|
|
});
|
|
}
|
|
return globalMePromise;
|
|
}
|