export const SESSION_PHASES = Object.freeze({ error: 'error', loading: 'loading', ready: 'ready', unauthorized: 'unauthorized' }); export function resolveSessionState(session, allowedRoles = []) { if (!session?.role) { return { message: 'Требуется повторный вход в систему', phase: SESSION_PHASES.unauthorized, session: null }; } if (allowedRoles.length > 0 && !allowedRoles.includes(session.role)) { return { message: 'У вас нет доступа к этому разделу', phase: SESSION_PHASES.unauthorized, session: null }; } return { message: '', phase: SESSION_PHASES.ready, session }; } export function loadingSessionState() { return { message: 'Проверяем сессию…', phase: SESSION_PHASES.loading, session: null }; }