From 1adc188eb1ede07b92584a330ba541c9903faa3e Mon Sep 17 00:00:00 2001 From: "jose.lopez" Date: Mon, 22 Sep 2025 12:02:29 -0600 Subject: [PATCH] redireccion --- src/layouts/AdminLayout.vue | 13 ++++++++++++- src/layouts/AppLayout.vue | 11 +++++++++++ src/layouts/CoordinatorLayout.vue | 11 +++++++++++ src/pages/Auth/Login.vue | 30 +++++++++++++++++++++++++++++- 4 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/layouts/AdminLayout.vue b/src/layouts/AdminLayout.vue index b26aa69..628ef7e 100644 --- a/src/layouts/AdminLayout.vue +++ b/src/layouts/AdminLayout.vue @@ -1,7 +1,11 @@ diff --git a/src/layouts/AppLayout.vue b/src/layouts/AppLayout.vue index 01c79b2..6ddf680 100644 --- a/src/layouts/AppLayout.vue +++ b/src/layouts/AppLayout.vue @@ -1,5 +1,9 @@ diff --git a/src/layouts/CoordinatorLayout.vue b/src/layouts/CoordinatorLayout.vue index 555757d..5248829 100644 --- a/src/layouts/CoordinatorLayout.vue +++ b/src/layouts/CoordinatorLayout.vue @@ -1,5 +1,9 @@ diff --git a/src/pages/Auth/Login.vue b/src/pages/Auth/Login.vue index 6d162dc..386c644 100644 --- a/src/pages/Auth/Login.vue +++ b/src/pages/Auth/Login.vue @@ -30,11 +30,39 @@ const login = () => { defineUser(res.user) defineCsrfToken(res.csrf) - location.replace('/') + // Redirección basada en roles + redirectBasedOnRole(res.userRoles) } }); }; +const redirectBasedOnRole = (userRoles) => { + // Si no tiene roles o el array está vacío, redirigir a "/" + if (!userRoles || userRoles.length === 0) { + router.push('/') + return + } + + // Verificar si tiene el rol coordinador + const hasCoordinatorRole = userRoles.some(role => role.name === 'coordinador') + if (hasCoordinatorRole) { + router.push('/coordinator') + return + } + + // Verificar si tiene rol admin o developer + const hasAdminOrDeveloperRole = userRoles.some(role => + role.name === 'admin' || role.name === 'developer' + ) + if (hasAdminOrDeveloperRole) { + router.push('/admin') + return + } + + // Si no cumple ninguna condición, redirigir a "/" + router.push('/') +}; + /** Ciclos */ onMounted(() => { if (hasToken()) {