redireccion

This commit is contained in:
jose.lopez 2025-09-22 12:02:29 -06:00 committed by Juan Felipe Zapata Moreno
parent 5e56c71bca
commit 703b39e052
4 changed files with 63 additions and 2 deletions

View File

@ -1,7 +1,11 @@
<script setup>
import { onMounted } from 'vue';
import useLoader from '@Stores/Loader';
import { hasPermission } from '@Plugins/RolePermission';
import { hasToken } from '@Services/Api';
import { reloadApp } from '@Services/Page';
import { useRouter } from 'vue-router';
import useLoader from '@Stores/Loader';
import Layout from '@Holos/Layout/App.vue';
import Link from '@Holos/Skeleton/Sidebar/Link.vue';
@ -10,6 +14,7 @@ import DropDown from '@Holos/Skeleton/Sidebar/Drop.vue'
/** Definidores */
const loader = useLoader()
const router = useRouter();
/** Propiedades */
defineProps({
@ -19,6 +24,12 @@ defineProps({
/** Ciclos */
onMounted(() => {
loader.boot()
if(!hasToken()) {
return router.push({ name: 'auth.index' })
} else {
reloadApp();
}
})
</script>

View File

@ -1,5 +1,9 @@
<script setup>
import { onMounted } from 'vue';
import { hasToken } from '@Services/Api';
import { reloadApp } from '@Services/Page';
import { useRouter } from 'vue-router';
import useLoader from '@Stores/Loader';
import Layout from '@Holos/Layout/App.vue';
@ -8,6 +12,7 @@ import Section from '@Holos/Skeleton/Sidebar/Section.vue';
/** Definidores */
const loader = useLoader()
const router = useRouter();
/** Propiedades */
defineProps({
@ -17,6 +22,12 @@ defineProps({
/** Ciclos */
onMounted(() => {
loader.boot()
if(!hasToken()) {
return router.push({ name: 'auth.index' })
} else {
reloadApp();
}
})
</script>

View File

@ -1,5 +1,9 @@
<script setup>
import { onMounted } from 'vue';
import { hasToken } from '@Services/Api';
import { reloadApp } from '@Services/Page';
import { useRouter } from 'vue-router';
import useLoader from '@Stores/Loader';
import Layout from '@Holos/Layout/App.vue';
@ -8,6 +12,7 @@ import Section from '@Holos/Skeleton/Sidebar/Section.vue';
/** Definidores */
const loader = useLoader()
const router = useRouter();
/** Propiedades */
defineProps({
@ -17,6 +22,12 @@ defineProps({
/** Ciclos */
onMounted(() => {
loader.boot()
if(!hasToken()) {
return router.push({ name: 'auth.index' })
} else {
reloadApp();
}
})
</script>

View File

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