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()) {