32 lines
772 B
JavaScript
32 lines
772 B
JavaScript
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);
|
|
};
|
|
}
|