redireccion
This commit is contained in:
parent
5e56c71bca
commit
703b39e052
@ -1,7 +1,11 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted } from 'vue';
|
import { onMounted } from 'vue';
|
||||||
import useLoader from '@Stores/Loader';
|
|
||||||
import { hasPermission } from '@Plugins/RolePermission';
|
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 Layout from '@Holos/Layout/App.vue';
|
||||||
import Link from '@Holos/Skeleton/Sidebar/Link.vue';
|
import Link from '@Holos/Skeleton/Sidebar/Link.vue';
|
||||||
@ -10,6 +14,7 @@ import DropDown from '@Holos/Skeleton/Sidebar/Drop.vue'
|
|||||||
|
|
||||||
/** Definidores */
|
/** Definidores */
|
||||||
const loader = useLoader()
|
const loader = useLoader()
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
/** Propiedades */
|
/** Propiedades */
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -19,6 +24,12 @@ defineProps({
|
|||||||
/** Ciclos */
|
/** Ciclos */
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loader.boot()
|
loader.boot()
|
||||||
|
|
||||||
|
if(!hasToken()) {
|
||||||
|
return router.push({ name: 'auth.index' })
|
||||||
|
} else {
|
||||||
|
reloadApp();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted } from 'vue';
|
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 useLoader from '@Stores/Loader';
|
||||||
|
|
||||||
import Layout from '@Holos/Layout/App.vue';
|
import Layout from '@Holos/Layout/App.vue';
|
||||||
@ -8,6 +12,7 @@ import Section from '@Holos/Skeleton/Sidebar/Section.vue';
|
|||||||
|
|
||||||
/** Definidores */
|
/** Definidores */
|
||||||
const loader = useLoader()
|
const loader = useLoader()
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
/** Propiedades */
|
/** Propiedades */
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -17,6 +22,12 @@ defineProps({
|
|||||||
/** Ciclos */
|
/** Ciclos */
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loader.boot()
|
loader.boot()
|
||||||
|
|
||||||
|
if(!hasToken()) {
|
||||||
|
return router.push({ name: 'auth.index' })
|
||||||
|
} else {
|
||||||
|
reloadApp();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted } from 'vue';
|
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 useLoader from '@Stores/Loader';
|
||||||
|
|
||||||
import Layout from '@Holos/Layout/App.vue';
|
import Layout from '@Holos/Layout/App.vue';
|
||||||
@ -8,6 +12,7 @@ import Section from '@Holos/Skeleton/Sidebar/Section.vue';
|
|||||||
|
|
||||||
/** Definidores */
|
/** Definidores */
|
||||||
const loader = useLoader()
|
const loader = useLoader()
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
/** Propiedades */
|
/** Propiedades */
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -17,6 +22,12 @@ defineProps({
|
|||||||
/** Ciclos */
|
/** Ciclos */
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loader.boot()
|
loader.boot()
|
||||||
|
|
||||||
|
if(!hasToken()) {
|
||||||
|
return router.push({ name: 'auth.index' })
|
||||||
|
} else {
|
||||||
|
reloadApp();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -30,11 +30,39 @@ const login = () => {
|
|||||||
defineUser(res.user)
|
defineUser(res.user)
|
||||||
defineCsrfToken(res.csrf)
|
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 */
|
/** Ciclos */
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (hasToken()) {
|
if (hasToken()) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user