-
Notifications
You must be signed in to change notification settings - Fork 1
/
draf.js
129 lines (114 loc) · 3.81 KB
/
draf.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*=========================================================================================
File Name: router.js
Description: Routes for vue-router. Lazy loading is enabled.
Object Strucutre:
path => router path
name => router name
component(lazy loading) => component to load
meta : {
rule => which user can have access (ACL)
breadcrumb => Add breadcrumb to specific page
pageTitle => Display title besides breadcrumb
}
----------------------------------------------------------------------------------------
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
Author: Pixinvent
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
import Vue from "vue";
import Router from "vue-router";
//import auth from "@/auth/authService";
//import firebase from 'firebase/app'
//import 'firebase/auth'
Vue.use(Router);
const router = new Router({
mode: "history",
//base: process.env.BASE_URL,
base: "/portal",
scrollBehavior() {
return { x: 0, y: 0 };
},
routes: [
{
// =============================================================================
// MAIN LAYOUT ROUTES
// =============================================================================
path: "/",
component: () => import("./layouts/main/Main.vue"),
children: [],
meta: {
requiresAuth: true,
},
},
// =============================================================================
// FULL PAGE LAYOUTS
// =============================================================================
{
path: "",
component: () => import("@/layouts/full-page/FullPage.vue"),
children: [],
},
// Redirect to 404 page, if no match found
{
path: "*",
redirect: "/pages/error-404",
},
],
});
router.afterEach(() => {
// Remove initial loading
const appLoading = document.getElementById("loading-bg");
if (appLoading) {
appLoading.style.display = "none";
}
document.title = "CMS BO";
});
router.beforeEach((to, from, next) => {
//firebase.auth().onAuthStateChanged(() => {
// get firebase current user
//const firebaseCurrentUser = firebase.auth().currentUser
if (to.matched.some((record) => record.meta.requiresAuth)) {
const token = localStorage.getItem("token");
if (!token) {
next({ name: "page-login" });
} else {
next();
}
} else {
next(); // does not require auth, make sure to always call next()!
}
if (to.matched.some((record) => record.meta.hideForAuth)) {
const token = localStorage.getItem("token");
if (token) {
next({ name: "admin-analytics" });
} else {
next();
}
} else {
next(); // does not require auth, make sure to always call next()!
}
// if (
// to.path === "/pages/login" ||
// to.path === "/pages/forgot-password" ||
// to.path === "/pages/error-404" ||
// to.path === "/pages/error-500" ||
// to.path === "/pages/register" ||
// to.path === "/callback" ||
// to.path === "/pages/comingsoon" ||
// (auth.isAuthenticated() || firebaseCurrentUser)
// ) {
// return next();
// }
// If auth required, check login. If login fails redirect to login page
// if(to.meta.authRequired) {
// if (!(auth.isAuthenticated() || firebaseCurrentUser)) {
// router.push({ path: '/pages/login', query: { to: to.path } })
// }
// }
//return next()
// Specify the current path as the customState parameter, meaning it
// will be returned to the application after auth
// auth.login({ target: to.path });
//});
});
export default router;