22 lines
771 B
TypeScript
22 lines
771 B
TypeScript
import {Route} from "vue-router";
|
|
|
|
function getCookieValue(cookieName: string) {
|
|
// https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript
|
|
const cookieValue = document.cookie.match('(^|[^;]+)\\s*' + cookieName + '\\s*=\\s*([^;]+)');
|
|
return cookieValue ? cookieValue.pop() : '';
|
|
}
|
|
|
|
export function loginRequired(to: Route) {
|
|
// public pages have the meta.public property set to true
|
|
const isPublic = to.meta && to.meta.public;
|
|
return !isPublic;
|
|
}
|
|
|
|
export function unauthorizedAccess(to: Route) {
|
|
return loginRequired(to) && getCookieValue('loginStatus') !== 'true';
|
|
}
|
|
|
|
export function joiningClass(to: Route) {
|
|
return to.name && (to.name === 'join-class' || to.name === 'licenseActivation');
|
|
}
|