scrivito
Version:
Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.
32 lines (25 loc) • 835 B
text/typescript
import { JrRestApi } from 'scrivito_sdk/client';
import { fetchConfiguredTenant } from 'scrivito_sdk/common';
import { createLoadableData } from 'scrivito_sdk/loadable';
export interface UserInfo {
sub: string;
name: string;
email: string;
picture?: string;
}
export function getUserInfo(): UserInfo | null | undefined {
return loadableUserInfo.get();
}
export async function getUserInfoPath(): Promise<string> {
const tenant = await fetchConfiguredTenant();
return `iam/instances/${tenant}/userinfo`;
}
// For test purposes only
export function setUserInfo(userinfo: UserInfo | null): void {
loadableUserInfo.set(userinfo);
}
const loadableUserInfo = createLoadableData<UserInfo | null>({
name: 'userinfo',
loader: async () =>
JrRestApi.getWithoutLogin(await getUserInfoPath()) as Promise<UserInfo>,
});