diff --git a/packages/auth/src/db/utils.js b/packages/auth/src/db/utils.js
index fd2395c8f5..6285649045 100644
--- a/packages/auth/src/db/utils.js
+++ b/packages/auth/src/db/utils.js
@@ -210,7 +210,7 @@ exports.getAllApps = async ({ tenantId, dev, all } = {}) => {
} else {
const response = await Promise.allSettled(appPromises)
const apps = response
- .filter(result => result.status === "fulfilled" )
+ .filter(result => result.status === "fulfilled")
.map(({ value }) => value)
.filter(app => {
const appTenant = !app.tenantId ? DEFAULT_TENANT_ID : app.tenantId
@@ -218,7 +218,6 @@ exports.getAllApps = async ({ tenantId, dev, all } = {}) => {
})
if (!all) {
return apps.filter(app => {
-
if (dev) {
return isDevApp(app)
}
diff --git a/packages/builder/src/pages/builder/_layout.svelte b/packages/builder/src/pages/builder/_layout.svelte
index 43a5d205d9..cde1d332b2 100644
--- a/packages/builder/src/pages/builder/_layout.svelte
+++ b/packages/builder/src/pages/builder/_layout.svelte
@@ -29,7 +29,7 @@
!$isActive("./invite")
) {
const returnUrl = encodeURIComponent(window.location.pathname)
- $redirect("./auth/login?", { returnUrl })
+ $redirect("./auth?", { returnUrl })
} else if ($auth?.user?.forceResetPassword) {
$redirect("./auth/reset")
}
diff --git a/packages/builder/src/pages/builder/auth/index.svelte b/packages/builder/src/pages/builder/auth/index.svelte
index 12570aeeb5..d335c3dfba 100644
--- a/packages/builder/src/pages/builder/auth/index.svelte
+++ b/packages/builder/src/pages/builder/auth/index.svelte
@@ -1,4 +1,5 @@
diff --git a/packages/builder/src/pages/builder/auth/login.svelte b/packages/builder/src/pages/builder/auth/login.svelte
index 88a87e1739..9fb984c73e 100644
--- a/packages/builder/src/pages/builder/auth/login.svelte
+++ b/packages/builder/src/pages/builder/auth/login.svelte
@@ -15,7 +15,6 @@
import Logo from "assets/bb-emblem.svg"
import { onMount } from "svelte"
- let tenantId = ""
let username = ""
let password = ""
@@ -26,7 +25,6 @@
await auth.login({
username,
password,
- tenantId,
})
notifications.success("Logged in successfully")
if ($auth?.user?.forceResetPassword) {
@@ -66,7 +64,6 @@
Sign in with email
-
import {
- ActionButton,
Body,
Button,
Divider,
Heading,
Input,
Layout,
- notifications,
} from "@budibase/bbui"
- import { goto, params } from "@roxi/routify"
- import { auth, organisation } from "stores/portal"
- import GoogleButton from "./_components/GoogleButton.svelte"
+ import { goto } from "@roxi/routify"
+ import { auth } from "stores/portal"
import Logo from "assets/bb-emblem.svg"
- import { onMount } from "svelte"
let tenantId = ""
- let username = ""
- let password = ""
- $: company = $organisation.company || "Budibase"
-
- async function login() {
- try {
- await auth.login({
- username,
- password,
- tenantId,
- })
- notifications.success("Logged in successfully")
- if ($auth?.user?.forceResetPassword) {
- $goto("./reset")
- } else {
- if ($params["?returnUrl"]) {
- window.location = decodeURIComponent($params["?returnUrl"])
- } else {
- notifications.success("Logged in successfully")
- $goto("../portal")
- }
- }
- } catch (err) {
- console.error(err)
- notifications.error("Invalid credentials")
- }
+ async function setOrg() {
+ auth.setOrg(tenantId)
+ $goto("./login")
}
function handleKeydown(evt) {
- if (evt.key === "Enter") login()
+ if (evt.key === "Enter") setOrg()
}
-
- onMount(async () => {
- await organisation.init()
- })
@@ -59,17 +28,16 @@
diff --git a/packages/builder/src/stores/portal/admin.js b/packages/builder/src/stores/portal/admin.js
index dab56a9225..1902e17a29 100644
--- a/packages/builder/src/stores/portal/admin.js
+++ b/packages/builder/src/stores/portal/admin.js
@@ -8,7 +8,9 @@ export function createAdminStore() {
async function init() {
try {
const tenantId = get(auth).tenantId
- const response = await api.get(`/api/admin/configs/checklist?tenantId=${tenantId}`)
+ const response = await api.get(
+ `/api/admin/configs/checklist?tenantId=${tenantId}`
+ )
const json = await response.json()
const onboardingSteps = Object.keys(json)
diff --git a/packages/builder/src/stores/portal/auth.js b/packages/builder/src/stores/portal/auth.js
index 56762532da..608a0d91b4 100644
--- a/packages/builder/src/stores/portal/auth.js
+++ b/packages/builder/src/stores/portal/auth.js
@@ -2,57 +2,71 @@ import { derived, writable, get } from "svelte/store"
import api from "../../builderStore/api"
export function createAuthStore() {
- const user = writable(null)
- const store = derived(user, $user => {
+ const auth = writable({
+ user: null,
+ tenantId: "default",
+ })
+ const store = derived(auth, $store => {
let initials = null
let isAdmin = false
let isBuilder = false
- let tenantId = "default"
- if ($user) {
- if ($user.firstName) {
- initials = $user.firstName[0]
- if ($user.lastName) {
- initials += $user.lastName[0]
+ if ($store.user) {
+ const user = $store.user
+ if (user.firstName) {
+ initials = user.firstName[0]
+ if (user.lastName) {
+ initials += user.lastName[0]
}
- } else if ($user.email) {
- initials = $user.email[0]
+ } else if (user.email) {
+ initials = user.email[0]
} else {
initials = "Unknown"
}
- isAdmin = !!$user.admin?.global
- isBuilder = !!$user.builder?.global
- tenantId = $user.tenantId || tenantId
+ isAdmin = !!user.admin?.global
+ isBuilder = !!user.builder?.global
}
return {
- user: $user,
+ user: $store.user,
+ tenantId: $store.tenantId,
initials,
isAdmin,
isBuilder,
- tenantId,
}
})
+ function setUser(user) {
+ auth.update(store => {
+ store.user = user
+ return store
+ })
+ }
+
return {
subscribe: store.subscribe,
+ setOrg: tenantId => {
+ auth.update(store => {
+ store.tenantId = tenantId
+ return store
+ })
+ },
checkAuth: async () => {
const response = await api.get("/api/admin/users/self")
if (response.status !== 200) {
- user.set(null)
+ setUser(null)
} else {
const json = await response.json()
- user.set(json)
+ setUser(json)
}
},
login: async creds => {
- const tenantId = creds.tenantId || get(store).tenantId
- delete creds.tenantId
+ const tenantId = get(store).tenantId
const response = await api.post(
`/api/admin/auth/${tenantId}/login`,
creds
)
const json = await response.json()
if (response.status === 200) {
- user.set(json.user)
+ setUser(json.user)
} else {
throw "Invalid credentials"
}
@@ -64,13 +78,13 @@ export function createAuthStore() {
throw "Unable to create logout"
}
await response.json()
- user.set(null)
+ setUser(null)
},
updateSelf: async fields => {
const newUser = { ...get(user), ...fields }
const response = await api.post("/api/admin/users/self", newUser)
if (response.status === 200) {
- user.set(newUser)
+ setUser(newUser)
} else {
throw "Unable to update user details"
}
diff --git a/packages/worker/src/api/controllers/admin/configs.js b/packages/worker/src/api/controllers/admin/configs.js
index 3135e6374c..9e1c2c3539 100644
--- a/packages/worker/src/api/controllers/admin/configs.js
+++ b/packages/worker/src/api/controllers/admin/configs.js
@@ -1,4 +1,3 @@
-const CouchDB = require("../../../db")
const {
generateConfigID,
getConfigParams,
diff --git a/packages/worker/src/api/controllers/admin/users.js b/packages/worker/src/api/controllers/admin/users.js
index ba7cb97d46..a0e4e18e8d 100644
--- a/packages/worker/src/api/controllers/admin/users.js
+++ b/packages/worker/src/api/controllers/admin/users.js
@@ -5,7 +5,7 @@ const {
getGlobalDBFromCtx,
StaticDatabases,
} = require("@budibase/auth/db")
-const { hash, getGlobalUserByEmail, newid } = require("@budibase/auth").utils
+const { hash, getGlobalUserByEmail } = require("@budibase/auth").utils
const { UserStatus, EmailTemplatePurpose } = require("../../../constants")
const { checkInviteCode } = require("../../../utilities/redis")
const { sendEmail } = require("../../../utilities/email")