Adding back logout functionality.

This commit is contained in:
Michael Drury 2021-07-25 12:07:25 +01:00
parent cfec959384
commit 88c0a635a0
2 changed files with 25 additions and 2 deletions

View File

@ -1,18 +1,36 @@
import * as API from "../api" import * as API from "../api"
import { writable } from "svelte/store" import { writable } from "svelte/store"
import { initialise } from "./initialise"
const createAuthStore = () => { const createAuthStore = () => {
const store = writable(null) const store = writable(null)
const goToDefaultRoute = () => {
// Setting the active route forces an update of the active screen ID,
// even if we're on the same URL
routeStore.actions.setActiveRoute("/")
// Navigating updates the URL to reflect this route
routeStore.actions.navigate("/")
}
// Fetches the user object if someone is logged in and has reloaded the page // Fetches the user object if someone is logged in and has reloaded the page
const fetchUser = async () => { const fetchUser = async () => {
const user = await API.fetchSelf() const user = await API.fetchSelf()
store.set(user) store.set(user)
} }
const logOut = async () => {
store.set(null)
window.document.cookie = `budibase:auth=; budibase:currentapp=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`
await initialise()
goToDefaultRoute()
}
return { return {
subscribe: store.subscribe, subscribe: store.subscribe,
actions: { fetchUser }, actions: { fetchUser, logOut },
} }
} }

View File

@ -1,5 +1,5 @@
import { get } from "svelte/store" import { get } from "svelte/store"
import { routeStore, builderStore, confirmationStore } from "../store" import { routeStore, builderStore, confirmationStore, authStore } from "../store"
import { saveRow, deleteRow, executeQuery, triggerAutomation } from "../api" import { saveRow, deleteRow, executeQuery, triggerAutomation } from "../api"
import { ActionTypes } from "../constants" import { ActionTypes } from "../constants"
@ -77,6 +77,10 @@ const refreshDatasourceHandler = async (action, context) => {
) )
} }
const logoutHandler = async () => {
await authStore.actions.logOut()
}
const handlerMap = { const handlerMap = {
["Save Row"]: saveRowHandler, ["Save Row"]: saveRowHandler,
["Delete Row"]: deleteRowHandler, ["Delete Row"]: deleteRowHandler,
@ -85,6 +89,7 @@ const handlerMap = {
["Trigger Automation"]: triggerAutomationHandler, ["Trigger Automation"]: triggerAutomationHandler,
["Validate Form"]: validateFormHandler, ["Validate Form"]: validateFormHandler,
["Refresh Datasource"]: refreshDatasourceHandler, ["Refresh Datasource"]: refreshDatasourceHandler,
["Log Out"]: logoutHandler,
} }
const confirmTextMap = { const confirmTextMap = {