This commit is contained in:
root
2025-12-03 09:05:00 +05:00
parent 24cc534fed
commit 0b074d6281
6 changed files with 1023 additions and 98 deletions
+24 -17
View File
@@ -226,38 +226,45 @@ const router = createRouter({
{
path: '/marketing-analysis',
name: 'marketing-main',
component: () => import('@/views/pages/marketing/MarketingMain.vue')
component: () => import('@/views/pages/marketing/MarketingMain.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/analysis',
name: 'marketing-analysis',
component: () => import('@/views/pages/marketing/MarketingAnalysis.vue')
component: () => import('@/views/pages/marketing/MarketingAnalysis.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/promotion',
name: 'marketing-promotion',
component: () => import('@/views/pages/marketing/MarketingPromotion.vue')
component: () => import('@/views/pages/marketing/MarketingPromotion.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/results',
name: 'marketing-results',
component: () => import('@/views/pages/marketing/MarketingResults.vue')
component: () => import('@/views/pages/marketing/MarketingResults.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/analyses',
name: 'marketing-analyses-list',
component: () => import('@/views/pages/marketing/MarketingAnalysesList.vue')
component: () => import('@/views/pages/marketing/MarketingAnalysesList.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/strategies',
name: 'marketing-strategies-list',
component: () => import('@/views/pages/marketing/MarketingStrategiesList.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/credentials',
name: 'marketing-credentials',
component: () => import('@/views/pages/marketing/MarketingCredentials.vue'),
meta: { requiresAuth: true }
},
{
path: '/marketing-analysis/strategies',
name: 'marketing-strategies-list',
component: () => import('@/views/pages/marketing/MarketingStrategiesList.vue')
},
{
path: '/marketing-analysis/credentials',
name: 'marketing-credentials',
component: () => import('@/views/pages/marketing/MarketingCredentials.vue')
},
{
path: '/pages/notfound',
name: 'notfound',
@@ -284,13 +291,13 @@ const router = createRouter({
router.beforeEach(async (to) => {
const isAuthenticated = !!AuthService.getAccessToken();
if (to.meta.requiresAuth && !isAuthenticated) {
if (to.meta?.requiresAuth && !isAuthenticated) {
return { name: 'login', query: { redirect: to.fullPath } };
}
if (to.name === 'login' && isAuthenticated) {
return { path: '/' };
}
if (to.meta.requiresAdmin) {
if (to.meta?.requiresAdmin) {
try {
const me = await IdentityService.getCurrentUser();
const roles = Array.isArray(me?.roles) ? me.roles : [];