redireccion
This commit is contained in:
parent
78a80ab3d5
commit
1adc188eb1
@ -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';
|
||||
@ -9,6 +13,7 @@ import Section from '@Holos/Skeleton/Sidebar/Section.vue';
|
||||
|
||||
/** Definidores */
|
||||
const loader = useLoader()
|
||||
const router = useRouter();
|
||||
|
||||
/** Propiedades */
|
||||
defineProps({
|
||||
@ -18,6 +23,12 @@ defineProps({
|
||||
/** Ciclos */
|
||||
onMounted(() => {
|
||||
loader.boot()
|
||||
|
||||
if(!hasToken()) {
|
||||
return router.push({ name: 'auth.index' })
|
||||
} else {
|
||||
reloadApp();
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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()) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user