mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-30 23:30:02 +00:00
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
/**
|
|
* Registers the real time events related to the baserow_enterprise module. When a message
|
|
* comes in, the state of the stores will be updated to match the latest update.
|
|
*/
|
|
|
|
export const registerRealtimeEvents = (realtime) => {
|
|
const updateWorkspacePermissions = async (store, workspaceId) => {
|
|
const workspace = store.getters['workspace/get'](workspaceId)
|
|
if (workspace) {
|
|
try {
|
|
await store.dispatch('workspace/forceFetchPermissions', workspace)
|
|
} catch (e) {
|
|
await store.dispatch('toast/setPermissionsUpdated', true)
|
|
}
|
|
}
|
|
}
|
|
|
|
realtime.registerEvent(
|
|
'permissions_updated',
|
|
({ store }, { workspace_id: workspaceId }) => {
|
|
updateWorkspacePermissions(store, workspaceId)
|
|
}
|
|
)
|
|
|
|
realtime.registerEvent(
|
|
'field_permissions_updated',
|
|
({ store, app }, payload) => {
|
|
const {
|
|
workspace_id: workspaceId,
|
|
field_id: fieldId,
|
|
role,
|
|
allow_in_forms: allowInForms,
|
|
} = payload
|
|
|
|
app.$bus.$emit('field-permissions-updated', {
|
|
fieldId,
|
|
role,
|
|
allowInForms,
|
|
})
|
|
|
|
updateWorkspacePermissions(store, workspaceId)
|
|
}
|
|
)
|
|
}
|