* tenants: add user_settings flow, add basic flow and basic new executor Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/user: use flow PromptStage instead of custom stage Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/flows: add tenant to StageHost interface Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/user: fix form missing component Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/user: re-add success message Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/user: improve support for multiple error messages Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/prompt: allow expressions in prompt placeholders Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/prompt: add tests Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * flows: always set pending user Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * flows: never cache stage configuration flow plans Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/user_write: fix error when pending user is anonymous user Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/admin: add checkbox for prompt placeholder expression Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * website/docs: add prompt expression docs Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/prompt: add ak-locale field type Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * tenants: fix default policy Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/user: add function to do global refresh Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/flows: fix rendering of ak-locale Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * tenants: fix default policy, add error handling to placeholder, fix locale attribute Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * add tests Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import { CoreApi, SessionUser } from "@goauthentik/api";
|
|
import { activateLocale } from "../interfaces/locale";
|
|
import { DEFAULT_CONFIG } from "./Config";
|
|
|
|
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) => {
|
|
const defaultUser: SessionUser = {
|
|
user: {
|
|
pk: -1,
|
|
isSuperuser: false,
|
|
isActive: true,
|
|
groups: [],
|
|
avatar: "",
|
|
uid: "",
|
|
username: "",
|
|
name: ""
|
|
}
|
|
};
|
|
if (ex.status === 401 || ex.status === 403) {
|
|
window.location.assign("/");
|
|
}
|
|
return defaultUser;
|
|
});
|
|
}
|
|
return globalMePromise;
|
|
}
|