diff --git a/src/router/index.js b/src/router/index.js index 9762234..1197d6e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -126,12 +126,24 @@ router.beforeEach(async (to, from, next) => { await fetchUser(); console.log('[ROUTER GUARD] Данные пользователя загружены:', user.value); console.log('[ROUTER GUARD] Пользователь является администратором:', user.value?.isAdmin ? 'Да' : 'Нет'); + + // Переадресация администратора сразу после загрузки данных + if (user.value?.isAdmin && !to.path.startsWith('/admin')) { + console.log('[ROUTER GUARD] Пользователь - администратор, перенаправляем на панель администратора'); + return next({ name: 'AdminDashboard' }); + } } catch (error) { console.error('[ROUTER GUARD] Ошибка при загрузке данных пользователя:', error); } } + + // Проверка администраторских прав и переадресация для уже аутентифицированных пользователей + if (isAuthenticated.value && user.value?.isAdmin && !to.path.startsWith('/admin') && to.name !== 'AdminDashboard') { + console.log('[ROUTER GUARD] Админ пытается зайти на не-админскую страницу, перенаправляем на админ-панель'); + return next({ name: 'AdminDashboard' }); + } - // Проверка прав администратора + // Проверка прав администратора для доступа к админ-маршрутам if (to.meta.requiresAdmin && (!user.value || !user.value.isAdmin)) { console.log(`[ROUTER GUARD] Доступ к ${to.path} запрещен. Требуются права администратора.`); console.log('[ROUTER GUARD] Текущий пользователь:', user.value);