1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-22 04:21:01 +00:00
bramw_baserow/web-frontend/modules/core/middleware/groupsAndApplications.js

32 lines
1 KiB
JavaScript

import { getGroupCookie } from '@baserow/modules/core/utils/group'
/**
* This middleware will make sure that all the groups and applications belonging to
* the user are fetched and added to the store.
*/
export default async function GroupsAndApplications({ store, req, app }) {
// If nuxt generate, pass this middleware
if (process.server && !req) return
// Get the selected group id
const groupId = getGroupCookie(app)
// If the groups haven't already been selected we will
if (store.getters['auth/isAuthenticated']) {
// If the groups haven't been loaded we will load them all.
if (!store.getters['group/isLoaded']) {
await store.dispatch('group/fetchAll')
// If there is a groupId cookie we will select that group.
if (groupId) {
try {
await store.dispatch('group/selectById', groupId)
} catch {}
}
}
// If the applications haven't been loaded we will also load them all.
if (!store.getters['application/isLoaded']) {
await store.dispatch('application/fetchAll')
}
}
}