export function isLoggedIn() { return !!localStorage.getItem('qdb_token'); } export function getRole() { return localStorage.getItem('qdb_role') || ''; } export function getUser() { return localStorage.getItem('qdb_user') || ''; } export function canEdit() { const r = getRole(); return r === 'admin' || r === 'supervisor'; } export function authGuard(navigate, handler) { return (params) => { if (!isLoggedIn()) { navigate('#/login'); return; } return handler(params); }; } export function roleGuard(navigate, roles, handler) { return (params) => { if (!isLoggedIn()) { navigate('#/login'); return; } if (!roles.includes(getRole())) { navigate('#/'); return; } return handler(params); }; }