const TOKEN_KEY = 'nm_token'; export type SessionUser = { id: number; username: string; email: string | null; role: string; disabled: boolean; force_password_change: boolean; } | null; let _token: string | null = null; let _user: SessionUser = null; export function getToken(): string | null { if (_token) return _token; _token = window.localStorage.getItem(TOKEN_KEY); return _token; } export function setToken(token: string): void { _token = token; window.localStorage.setItem(TOKEN_KEY, token); } export function clearSession(): void { _token = null; _user = null; window.localStorage.removeItem(TOKEN_KEY); } export function getSessionUser(): SessionUser { return _user; } export function setSessionUser(user: SessionUser): void { _user = user; } export function isAdmin(): boolean { return _user?.role === 'admin'; }